У нас есть элемент управления, который отображает большой объем данных, используя несколько элементов управления различного размера и сложности. Из-за большого количества элементов управления, которые необходимо выложить, может произойти очень заметная задержка.Задержка на загрузку WPF
Мы знаем, что задержка исходит от функций Measure/Arrange, поскольку у нас есть тестовый класс, который держится из стековой панели, которая переопределяет их некоторым временным кодом.
Мы не хотим использовать виртуализацию из-за побочных эффектов полос прокрутки, постоянно меняющих их диапазон, и мы не хотим скрывать данные под расширителями или любыми другими коллапсирующими элементами управления, так как клиент просил отобразить все это в одном длинный перечень. Тем не менее, они хотят знать, что элемент управления на самом деле что-то делает, когда происходит задержка, какой-то статус прогресса.
Итак, мой вопрос: есть ли способ создания элемента управления, который отображает загрузочную анимацию как рекламодателя или что-то еще до тех пор, пока его контент не будет выложен? Я ценю это, вероятно, невозможно, поскольку организация/измерение также выполняется в потоке пользовательского интерфейса.
Вы пытались перенести приоритет? Вот как я это делаю, но я также использую виртуализацию. – Paparazzi
Использование виртуализации. Забудьте прокрутки. В противном случае вам необходимо [Создать BusyIndicator в отдельном потоке] (http://abrahamheidebrecht.wordpress.com/2009/08/05/creating-a-busy-indicator-in-a-separate-thread-in-wpf/) –