Как задать счетчик отрисовок?

140
18 апреля 2022, 10:50

Всем привет. Мне нужно реализовать отрисовку квадрата с повторяющимися квадратиками по углам.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Lab4
{
public partial class Form1 : Form
{
     public Form1()
     {
       InitializeComponent();
     }
     public void DrawRectangles(Graphics g, Pen pen, Point startPoint, Size size)
     {
        if (size.Width < 40 || size.Height < 40) return;
        startPoint.Offset(-size.Width / 2, -size.Height / 2);
        var rect = new Rectangle(startPoint, size);
        g.DrawRectangle(pen, rect);
        var newSize = new Size(size.Width / 2, size.Height / 2);
        var points = new List
     {
            startPoint,
            new Point(startPoint.X + size.Width, startPoint.Y),
            new Point(startPoint.X, startPoint.Y + size.Height),
            new Point(startPoint.X + size.Width, startPoint.Y + size.Height)
     };
     points.ForEach(pt =>
     {
     DrawRectangles(g, pen, pt, newSize);
     });
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
      var pen = new Pen(Color.Black, 3);
      var startPoint = new Point(0, 0);
      startPoint.Offset(Width / 2, Height / 2);
      var size = new Size(Height / 2, Height / 2);
      DrawRectangles(e.Graphics, pen, startPoint, size);
}
private void Form1_SizeChanged(object sender, EventArgs e)
{
      Refresh();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
         if (e.KeyCode == Keys.Escape)
         Application.Exit();
}
}
}

Вот мой код, квадрат отрисовывается, и по углам так же отрисовка есть, но она неправильная, т.е тут отрисовка зависит от размера который я задам , если задам <150 То вообще ничего не отрисует, а нужно задать как бы счетчик отрисовок. Как это можно сделать?

READ ALSO
как привязать datatable к combobox в XAML

как привязать datatable к combobox в XAML

Д0бр0го времени сутокЕсть код:

137
Выбор случайного цвета из списка

Выбор случайного цвета из списка

Есть програма на WinForms, она считывает цвет в picturebox, куда нажал пользователь и делат область с этим цветом прозрачнойУ меня есть список цветов...

183
Сравнение массивов С#

Сравнение массивов С#

Есть текстовый документ, в котором записаны в столбик такое(пример): 11123 абрис ,11124 абсент ,11125 абсида ,11126 абсурд ,11131 абулия ,11132 абхазИ таких...

250
сравнение в словаре по особому ключу

сравнение в словаре по особому ключу

Существует словарь частоты встречаемости подстрок в предложении, где ключ - это подстрока, а значение - сколько раз эта подстрока встречается...

158