Макеты Dock, Anchor и Fluid в приложениях Windows Forms - PullRequest
12 голосов
/ 24 июня 2011

Итак, меня попросили перепроектировать старое приложение, которое я написал несколько лет назад.

По сути, ничего не нужно менять, за исключением того, что Заказчик хочет, чтобы он был более плавным, и чтобы он был полноэкранным (без видимого «окна»), т.е. нет заголовка, просто полноэкранное окно без полей.

Каков наилучший способ убедиться, что все остается текучим, я имею в виду, как мы можем сделать так, чтобы все отображалось там, где и должно, потому что вы знаете, разные разрешения, размеры монитора и т. Д.?

Это легко сделать на веб-страницах / css, но это не то, что я делал раньше. Большинство элементов управления будут создаваться программно во время выполнения, в зависимости от того, какое действие было выполнено и т. Д. Как мне выполнить такой макет? По сути, я хочу иметь возможность выложить все это на весь экран, не зная, какой у них размер монитора или какое разрешение они используют.

Ответы [ 2 ]

19 голосов
/ 25 июня 2011

Вы, безусловно, правы, пытаясь спроектировать форму, используя плавный макет, который отвечает размеру доступного пространства и размеру шрифта формы.Для этого вы хотите использовать следующие элементы управления и свойства элементов управления.

1, TableLayoutPanel разделит область на набор строк и столбцов и позволит вам расположить дочерние элементы управления в отдельныхячейки этого макета таблицы.Это реагирует на изменение ширины и высоты формы.

2, FlowLayoutPanel расположит ваши дочерние элементы управления слева направо и автоматически переместится в новую строку, когда у вас закончится свободное место.Это отлично подходит для плавного дизайна, поскольку он будет корректировать макет в зависимости от доступного пространства. Свойство

3, Control.Anchor позволяет дочернему элементу управления изменять положение и размер в зависимости от размера.формы клиентской области.Таким образом, ваш элемент управления всегда будет иметь фиксированное смещение от правого или нижнего края. Свойство

4, Control.Dock будет размещать дочерний элемент управления относительно края, и противоположный размер будет автоматическиопределяется содержащейся формой.

3 голосов
/ 24 июня 2011

Вы можете поместить свои элементы управления в tableLayout и установить свойство Dock для заполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...