Шаблон статической отрисовки

1. Открываем Visual Stduio

2. Создаем Windows Forms App (C#)

3. В конструкторе подписываемся на событие Paint

public Form1()
{
    InitializeComponent();
    Paint += Form1_Paint;    
}

4. В хендлере события Paint можем воспользоваться объектом e.Graphics для рисования примитивов

 private void Form1_Paint(object? sender, PaintEventArgs e)
 {
// используем     e.Graphics
 }

 

Опции конструктора

1. Задать размер окна в конструкторе  

 ClientSize = new Size(400, 400);

2. Включить двойную буферизацию (чтобы не видеть промежуточные фазы процесса отрисовки) 

 DoubleBuffered = true;

3. Выводить окно по центру при старте программы

StartPosition = FormStartPosition.CenterScreen;

4. Подписаться на хендел изменения размеров окна 

SizeChanged += Form1_SizeChanged;

После конструктора нужно создать хендлер

private void Form1_SizeChanged(object? sender, EventArgs e)
{
    Invalidate();
}

Это позволит перерисовывать (вызывать событие Paint) окно если пользователь изменил его размер (например развернул на весь экран "максимизировал")

 

Опции хендлера Paint

1. Создать переменную с коротким названием чтобы не писать каждый раз e.Graphics целиком

var gr = e.Graphics;

2. Включить сглаживание графики перед отрисовкой

e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

// либо можно написать коротко не указывая весь namespace
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
// но тогда надо наверху файла в формы написать 
using System.Drawing.Drawing2D;