WPF: обновить указатель мыши, когда поток пользовательского интерфейса заблокирован - PullRequest
1 голос
/ 08 октября 2011

У меня есть какая-то задача, которая замораживает пользовательский интерфейс на несколько секунд, и в этом конкретном случае у меня нет другого выбора, кроме как выполнить его из потока пользовательского интерфейса (обычно я использую диспетчеры).

Я полностью понимаю, что мое окно не может перекрашиваться в это время, но как заставить указатель мыши перерисовать себя перед выполнением вызова блокировки? Прямо сейчас я делаю:

Me.Cursor = System.Windows.Input.Cursors.Wait
[Heavy Task]
Me.Cursor = System.Windows.Input.Cursors.Default

Но окно не обновляет курсор до указателя ожидания, потому что поток пользовательского интерфейса заморожен? Как заставить обновление?

1 Ответ

3 голосов
/ 09 октября 2011

Кажется, я нашел решение.Вместо изменения курсора для окна, переместите его глобально:

Mouse.OverrideCursor = Cursors.Wait;
[Heavy Task]
Mouse.OverrideCursor = Cursors.Default;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...