.net – 使用BackgroundWorker线程的WPF等待光标
发布时间:2020-12-20 12:39:07 所属栏目:Python 来源:网络整理
导读:我想显示沙漏光标并在BackgroundWorker进程在另一个线程中运行时禁用窗口. 这就是我正在做的事情: Private Sub MyButton_Click(...) Dim box As New AnotherWpfWindow() box.Owner = Me ... box.ShowDialog() If (box.DialogResult.GetValueOrDefault = Tru
我想显示沙漏光标并在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忽略禁用窗口上的Cursor设置.以下解决方法似乎有效:禁用窗口内容,而不是禁用窗口本身:
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |