Экран ожидания при рендеринге UIElement в WPF
У меня есть приложение WPF, использующее PRISM. У меня есть экран входа в систему и при успешном входе в систему появляется новое представление, содержащее TileListView со многими элементами. Для визуализации требуется более 10 секунд, потому что элемент управления должен вычислять много и т. Д. Все это использует поток пользовательского интерфейса по стандартному поведению, потому что рендеринг в WPF выполняется в потоке пользовательского интерфейса. Можно ли отображать WaitControl как вращатель или просто анимацию в отдельном окне или что-то вроде этого? Теперь анимация останавливается в тот момент, элемент управления отображается в UI Thread.
2 ответа
Вы можете создать новое окно, которое запускается в отдельном потоке. Пожалуйста, обратитесь к следующему сообщению в блоге для примера того, как это сделать.
Запуск окна WPF в отдельной теме: http://reedcopsey.com/2011/11/28/launching-a-wpf-window-in-a-separate-thread-part-1/
Затем вы просто запускаете этот поток, который отображает окно сразу после того, как вы проверили учетные данные и непосредственно перед началом тяжелого рендеринга.
Это, вероятно, лучшее, что вы можете сделать, и это также должно быть довольно легко реализовать.
Вы можете использовать SplashScreen для отображения до завершения фонового процесса. См. Этот заставки в WPF