Сетка WPF против Stackpanel
для WPF/Silverlight для разметки, лучше использовать сетку с большим количеством строк и столбцов, или тонн Stackpanels?
6 ответов
вы должны использовать сетку, если вам нужны вещи, чтобы выровнять по горизонтали и вертикали. Используйте StackPanel для создания строки или столбца вещей, когда этим вещам не нужно выстраиваться в линию с чем-либо еще.
, Не ограничивайте себя этими двумя вариантами. В частности, посмотрите на DockPanel. Это немного сложнее, чем StackPanel, но его разметка не так загромождена, как сетка. Вот хорошая статья о DockPanel:контейнер, который вы используете, должен основываться на содержимом, а не на том, лучше ли один подход, чем другой. Если вам нужны вещи, чтобы выровнять как по горизонтали, так и по вертикали, вы действительно должны использовать сетку. Но кроме этого, это действительно зависит от контента, который вы собираетесь показать.
Я думаю, что сетка лучше. Я обычно настроить общий макет с сеткой и использовать несколько stackpanels здесь и там, чтобы сделать некоторые конкретные вещи. У меня также есть ощущение, что производительность лучше с сетками и что сетки обычно дают вам больше гибкости.
Я не думаю, что Grid-это лучшая идея.
например , если вы хотите вставить строку в существующий документ макет сетки (в середине)
там exising строка 1,2,3,4, то требование вставить новую строку между 1 и 2.
затем вам пришлось изменить 2,3,4 на 3,4,5 (найти все теги изменения....)
подумайте, если одна строка имеет 3-5 столбцов... это грязная работа-переупорядочивать все цифровое.!!!
Я предпочитаю StackPanel, потому что мне легче вносить изменения при вставке новых элементов, строк или столбцов. С помощью сетки вам нужно прочитать номера строк и столбцов, чтобы узнать, где вы находитесь. С StackPanel вы просто следуете за вложенностью, это проще и менее грязно, чем сетка.
например, на странице XAML я использую горизонтальную панель стека, как родительскую сетку, тогда, если мне нужен столбец, у меня есть отдельная "вертикальная" вложенная панель стека. Таким образом, горизонтальная stackpanel становится "сеткой", а вложенные вертикальные StackPanel становятся столбцами. Я считаю, что это легче читать и изменять строки и столбцы в сетке.
У меня нет опыта с такой макет, но я уверена, что сетка легче оказывать по сравнению с большим количеством вложенных stackpanels.