Для компоновки WPF/Silverlight лучше использовать сетку с большим количеством строк и столбцов или тонны стековых панелей?
WPF Grid vs Stackpanel
Ответ 1
Вы должны использовать Grid, если вам нужно, чтобы строки выравнивались горизонтально и вертикально. Используйте StackPanel для создания строки или столбца вещей, когда этим вещам не нужно выстраиваться ни с чем другим.
Однако не ограничивайте себя этими двумя параметрами. В частности, посмотрите на DockPanel. Он немного сложнее, чем StackPanel, но его разметка не так захламлена, как грид. Вот хорошая статья о DockPanel:
Ответ 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
У меня нет опыта работы с таким макетом, но я готов поспорить, что сетка проще визуализировать по сравнению с большим количеством вложенных стековых панелей.