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

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

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

Здравствуйте! В сегодняшней статье мы рассмотрим, как создать резиновый макет в C# WinForms, который автоматически адаптируется под изменение размеров окна приложения.

Шаг 1: Использование свойства Anchor

Свойство Anchor позволяет «прикрепить» элементы интерфейса к определённым сторонам формы. Благодаря этому при изменении размеров окна элементы сохраняют своё положение и могут автоматически растягиваться.

  1. Откройте проект в Visual Studio.
  2. Добавьте элементы управления, такие как TextBox или Button, на форму.
  3. Установите свойство 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# с Нуля до Гуру.

    Источник

    НЕТ КОММЕНТАРИЕВ

    Оставить комментарий