Резиновый макет в C# WinForms

Здравствуйте! В сегодняшней статье мы рассмотрим, как создать резиновый макет в C# WinForms, который автоматически адаптируется под изменение размеров окна приложения.
Шаг 1: Использование свойства Anchor
Свойство Anchor позволяет "прикрепить" элементы интерфейса к определённым сторонам формы. Благодаря этому при изменении размеров окна элементы сохраняют своё положение и могут автоматически растягиваться.
- Откройте проект в Visual Studio.
- Добавьте элементы управления, такие как TextBox или Button, на форму.
- Установите свойство Anchor для нужных сторон.
TextBox textBox = new TextBox();
textBox.Location = new Point(10, 10);
textBox.Size = new Size(200, 25);
textBox.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
Шаг 2: Использование свойства Dock
Свойство Dock позволяет "приклеить" элемент к определённой стороне формы или растянуть его на всю доступную площадь.
Panel panel = new Panel();
panel.Dock = DockStyle.Fill; // Занимает всю форму
TextBox textBox = new TextBox();
textBox.Dock = DockStyle.Top; // Растягивается по ширине сверху
panel.Controls.Add(textBox);
this.Controls.Add(panel);
Шаг 3: Использование контейнеров TableLayoutPanel и FlowLayoutPanel
Для создания более гибкой и адаптивной верстки можно использовать контейнеры, такие как TableLayoutPanel, которые позволяют разместить элементы по сетке, и FlowLayoutPanel — для последовательного размещения элементов.
TableLayoutPanel layout = new TableLayoutPanel();
layout.Dock = DockStyle.Fill;
layout.ColumnCount = 2;
layout.RowCount = 2;
layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
layout.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50));
layout.RowStyles.Add(new RowStyle(SizeType.Percent, 50));
layout.RowStyles.Add(new RowStyle(SizeType.Percent, 50));
TextBox textBox1 = new TextBox();
textBox1.Dock = DockStyle.Fill;
Button button1 = new Button();
button1.Text = "Нажми меня";
button1.Dock = DockStyle.Fill;
layout.Controls.Add(textBox1, 0, 0);
layout.Controls.Add(button1, 1, 1);
this.Controls.Add(layout);
Шаг 4: Комбинирование подходов
Часто на практике удобно комбинировать Anchor, Dock и контейнеры для достижения оптимального поведения интерфейса при изменении размеров формы.
- Anchor — когда нужен контроль над положением элемента.
- Dock — когда элемент должен заполнять определённую часть окна.
- Контейнеры — для сложной компоновки и адаптивности.
Заключение
Создание резинового интерфейса в C# WinForms — важный навык для разработки удобных и адаптивных пользовательских приложений. Сочетание свойств Anchor, Dock и контейнерных компонентов позволяет добиться гибкого и современного UI без использования сторонних библиотек.
Если вам интересна тема проектирования интерфейсов в WinForms и не только, рекомендуем видеокурс Программирование на C# с Нуля до Гуру.
-
-
Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.