WPF等待光标与BackgroundWorker线程
问题描述:
我想显示沙漏光标,并禁用BackgroundWorker进程在另一个线程中运行时的窗口。WPF等待光标与BackgroundWorker线程
这是我在做什么:
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
的窗口变得禁用像我想要的,但光标保持一个箭头。我怎样才能让它等待光标?
它似乎根据这个问题的vg1890工作:Disabling all but one control in a WPF window
答
什么似乎是这里发生的是,WPF是忽略了光标残疾人窗口上进行设置。以下解决方法似乎工作:而不是禁用窗口本身,禁用窗口内容:
C#:
((UIElement)Content).IsEnabled = false;
Cursor = Cursors.Wait;
// and in RunWorkerCompleted handler:
((UIElement)Content).IsEnabled = true;
Cursor = Cursors.Arrow;
的Visual Basic:
DirectCast(Content, UIElement).IsEnabled = False
Cursor = Cursors.Wait
' and in RunWorkerCompleted handler:'
DirectCast(Content, UIElement).IsEnabled = True
Cursor = Cursors.Arrow
答
另一种方法是全球更改光标,是..
Mouse.OverrideCursor = Cursors.Wait;
//Do something
//...
Mouse.OverrideCursor = null;
这样做。谢谢。 – 2009-04-21 12:55:31