Оптимизация WPF: логические деревья в xaml, как они создаются?

Я профилировал свое приложение и обнаружил, что большая часть задержек связана с инициализацией WPF. Я нашел статью об оптимизации WPF, в которой говорится, что построение логического дерева сверху вниз будет иметь лучшую производительность, чем если бы оно было построено снизу вверх. Пример в статье на C#. Мне интересно, когда пользовательский интерфейс сделан в XAML, как он строит дерево?

1 ответ

Решение

Когда это делается в XAML, это делается сверху вниз.

Эта статья относится к построению дерева из кода. Вы хотите добавить элементы верхнего уровня, потом потомки, потомки потомки и так далее. Если вы сначала добавите дочерние элементы, затем родительские элементы, затем их родительские элементы и т. Д., Вы понесете значительные затраты производительности из-за аннулирования всех дочерних элементов в дереве, а не только путем возврата к корню через каждого родительского элемента.

Построй свое дерево сверху вниз

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

Другие вопросы по тегам