I want to show the hourglass cursor and disable the window while a BackgroundWorker process runs in another thread.
This is what I'm doing:
Private Sub MyButton_Click(...)
Dim box As New AnotherWpfWindow()
box.Owner = Me
...
box.ShowDialog()
If (box.DialogResult.GetValueOrDefault = True) Then
Me.IsEnabled = False
Me.Cursor = Cursors.Wait
MyBackgroundWorker.RunWorkerAsync()
End If
End Sub
Private Sub MyBackgroundWorker_RunWorkerCompleted(...)
UpdateInterface()
Me.IsEnabled = True
Me.Cursor = Cursors.Arrow
End Sub
The window becomes disabled like I want, but the cursor remains an arrow. How can I make it the Wait cursor?
It seems to work for vg1890 according to this question: Disabling all but one control in a WPF window
Another way is to change the cursor globally, is..
What seems to be happening here is that WPF is ignoring the Cursor setting on the disabled window. The following workaround seems to work: instead of disabling the window itself, disable the content of the window:
C#:
Visual Basic: