WPF ItemsControl - Как определить, когда элемент не виден - PullRequest
0 голосов
/ 21 февраля 2011

Я создаю приложение WPF для визуализации загрузки элементов (несколько тысяч). Для этого я использую ItemsControl, для которого для ItemsSource установлено значение BindingList.

Я заметил, что инициализация экрана занимает некоторое время ... Основным узким местом является создание элементов TextBlock (шаблон данных элементов содержит 4 элемента TextBlock). После инициализации экрана (когда все элементы WPF созданы), рендеринг вполне нормален.

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

Как это можно сделать? Есть ли какой-либо способ в WPF спросить элемент или контейнер элемента, обрезан ли он в данный момент?

1 Ответ

1 голос
/ 21 февраля 2011

Вы можете сделать свой список виртуализированным.Таким образом, только элементы, которые являются видимыми, будут иметь созданные для них элементы управления пользовательским интерфейсом.Проверьте документацию ListView, или эта ссылка может помочь: http://www.codeproject.com/KB/WPF/WpfDataVirtualization.aspx

Jogy

...