Панель стека или сетка, какой из них наиболее рекомендуется - PullRequest
9 голосов
/ 15 марта 2011

Я слышал, что UI Design с панелью Stack более популярен, чем Grids. Есть ли в этом факт? Я обычно использую Grid для разработки своего пользовательского интерфейса, недавно в документе я прочитал, что Grid тратит больше времени на рендеринг, а не на панель стека ;; поэтому я очень запутался в этом .. Пожалуйста, дайте мне больше информации об этом .. (WP7 Development)

Ответы [ 6 ]

15 голосов
/ 15 марта 2011

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

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

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

Grid и Stackpanel имеют свое место в зависимости от требований вашего пользовательского интерфейса.Похоже, вы преждевременно оптимизируете.

Я бы реализовал панель, которая больше всего соответствует потребностям, и потом беспокоился бы о производительности, если это проблема.

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

Просто хотел прокомментировать SteveChadbourne, но не знаю, как это сделать.

См. http://www.codeproject.com/KB/showcase/WP7-Performance.aspx (MonthCalendar) для примера сетки с 126 элементами, которая загружается примерно за 2 секунды,Если вы говорите, что ваши 60 элементов управления загружаются за 25 секунд, то дело не в используемом контейнере, а в ваших элементах управления.

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

Есть более важные вещи для оптимизации - шаблоны, привязки и т.д.контроль.Программисты удивляются, насколько неэффективны передовые инструменты Silverlight.

1 голос
/ 17 октября 2013

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

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

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

Я попробовал и сетку, и панель стека, и обеим потребовалось 25 секунд для отображения 60 пользовательских элементов управления.Это упало до 10 секунд после того, как я переключился на список.

Если вам нужно дополнительное позиционирование, используйте сетку внутри каждого шаблона элемента списка.

0 голосов
/ 27 октября 2018

Grid и Stackpanel являются контейнерами, поэтому они содержат несколько дочерних элементов.Разница в том, как они содержат элементы.

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

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

поэтому Исходя из ваших требований, вы можете выполнить большинство этих требований.

...