WPF: Почему вся любовь к грид-контролю? - PullRequest
5 голосов
/ 15 марта 2010

Видел различные примеры приложений WPF. Я видел использование элемента управления Grid практически для всего, даже для самых простых вещей с одним столбцом или строкой.

Кроме того, шаблоны WPF начинаются с пустогоgrid.

Для меня использование StackPanel или DockPanel менее многословно и лучше для обслуживания (подумайте, добавив строку позже и добавив +1 ко всем другим строкам)

Почему Grid лучше или чего мне не хватает?

Ответы [ 4 ]

3 голосов
/ 15 марта 2010

Два слова: определение размера звезды. Grid позволяет изменять размер содержимого в пространстве, в котором он находится, без явного указания размера контейнера. Элементы управления панели не.

2 голосов
/ 15 марта 2010

Я думаю, что одной из причин того, что Grid является элементом по умолчанию, является то, что он (немного) более удобен для дизайнеров.

В Grid нет ограничений на наличие нескольких элементов в одной «ячейке» Grid, что позволяет конструктору со свободным размещением иметь такую ​​же гибкость, что и Canvas, но при этом иметь возможности автоматического размещения, которые есть у Grid другие более приятные элементы управления макетом, такие как StackPanel и DockPanel), содержат.

1 голос
/ 15 марта 2010

Я обнаружил, что для более сложных окон легче разбить их на функциональные области, которые довольно независимы (по перемещению и размеру) от других. Сетки позволяют этим областям сосуществовать на одной панели и позволяют размещать их независимо от того, где находятся другие элементы управления (до некоторой степени).

Например, в проекте, над которым я сейчас работаю , у меня есть окно, которое будет менеджером по отгрузке. Я хочу три вида списка (Отгрузки, Пакеты, Предметы) У меня есть элемент управления сеткой с двумя столбцами; один со списком пакетов и разделителем сетки, другой со вложенной сеткой с двумя другими списками и разделителем сетки.

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

Cory

1 голос
/ 15 марта 2010

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

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

...