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
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: