Существует много раз, когда для макета, который мне нужен, может понадобиться более одной панели, однако я знаю, что разница в временах рендеринга для разных типов панелей.
Например, MSDN утверждает, что
Относительно простой
Panel
, такой какCanvas
, может быть значительно лучше, чем более сложныйPanel
, напримерGrid
.
Итак, с точки зрения времени рендеринга и производительности, в каком порядке наиболее эффективны панели WPF?
Панели WPF:
-
Canvas
-
DockPanel
-
Grid
-
UniformGrid
-
StackPanel
-
WrapPanel
-
VirtualizingPanel
/VirtualizingStackPanel
Я уверен, что я видел список этого где-то в Интернете, но я не могу его найти сейчас.
Идеальный ответ, который я ищу, предоставит мне список панелей в том порядке, в котором они будут отображаться быстрее всего. Я понимаю, что число детей является важным фактором эффективности панелей, поэтому для этого вопроса предполагается, что каждая панель имеет только пару Label
/TextBox
.
Кроме того, мне нужен список исключений, таких как конкретные панели, которые лучше других работают на определенных условиях.
Обновление
Подводя итог в соответствии с принятым ответом ниже, производительность панели основана на количестве и макете дочерних элементов, однако в целом список от самого быстрого до самого медленного:
-
Canvas
-
StackPanel
-
WrapPanel
-
DockPanel
-
Grid
Кроме того, a VirtualizingPanel
/VirtualizingStackPanel
всегда следует использовать, если на экране есть много элементов, которые не всегда подходят на экране.
Я очень рекомендую вам прочитать принятый ответ ниже, чтобы получить более подробную информацию, прежде чем просто выбрать элемент из этого списка.