Подтвердить что ты не робот

WPF Grid vs Stackpanel

Для компоновки WPF/Silverlight лучше использовать сетку с большим количеством строк и столбцов или тонны стековых панелей?

4b9b3361

Ответ 1

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

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

Использование DockPanel в Silverlight 2

Ответ 2

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

Ответ 3

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

Ответ 4

Я не думаю, что Grid - лучшая идея.

например, если вы хотите вставить строку в существующий документ макета сетки (посередине)

там строка извлечения - 1,2,3,4, тогда требование - вставить новую строку между 1 и 2.

тогда вам пришлось менять 2,3,4 до 3,4,5 (найти все теги с изменением....)

подумайте, есть ли в одной строке 3 - 5 столбцов... это грязная работа, чтобы переупорядочить все цифровые.!!!

Ответ 5

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

Например, на странице XAML я использую горизонтальную панель стека, такую ​​как родительская сетка, а затем, если мне нужен столбец, у меня есть отдельная "вертикальная" стековая панель. Таким образом, горизонтальная панель стека становится "сеткой", а вложенные вертикальные StackPanel становятся столбцами. Мне легче читать и изменять эти строки и столбцы в сетке.

Ответ 6

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