индикатор занятости во время длительной операции рисования интерфейса wpf - PullRequest
1 голос
/ 06 сентября 2010

Я использую некоторые сторонние компоненты, для рендеринга которых требуется некоторое время (~ 3-5 с) ​​- после профилирования я пришел к выводу, что большую часть времени теряется в методах MeasureOverride и Render этих элементов управления ... Iне может редактировать исходный код этих компонентов.Проблема в том ... могу ли я отображать индикатор занятости во время "прорисовки" интерфейса?Возможно ли это в WPF?

1 Ответ

1 голос
/ 07 сентября 2010

Нет, вы не можете, ну, не очень хорошо.

Поток пользовательского интерфейса занят рендерингом - рисование индикатора занятости потребовало бы того же потока для рисования индикатора.

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

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

...