Каким образом панель переноса WPF медленнее, чем нам нужна виртуальная панель переноса - PullRequest
4 голосов
/ 11 мая 2009

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

Может кто-нибудь дать мне небольшой образец оберточной панели, где можно доказать, что он загружается медленнее и т. Д., Что ему нужна виртуализирующая панель, пожалуйста.

Я установил панель обтекания в качестве элемента управления панели для списка и добавил к нему 10000 строковых объектов, и это не было проблемой. Я уверен, что мой пример был глупым, возможно, мне нужно написать бизнес-объект и создать больший шаблон данных, чтобы увидеть эту проблему в действии.

Пожалуйста, покажите мне образец, который доказывает, что обертывание панели без виртуализации медленнее.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 14 мая 2009

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

Шаблон по умолчанию ListBoxItem состоит из небольшого количества элементов (я думаю, это граница и текстовый блок). Если у вас есть шаблон, который создает сложную визуализацию, скажем, 100 визуальных элементов на элемент, вы получаете довольно большое количество визуальных элементов в зависимости от количества элементов.

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

Кроме того, это также влияет на использование памяти

0 голосов
/ 16 апреля 2011

Мне недавно понадобилась эта функция при создании формы символа вставки. Использование списка со стандартной панелью переноса в качестве панели элементов - время загрузки может составлять до 5 секунд.

...