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