C# 如果第1页的backgroundworker为true,则主窗口上的WPF停止单击事件
WPF vb.net桌面应用程序 我有一个简单的测试布局。一个C# 如果第1页的backgroundworker为true,则主窗口上的WPF停止单击事件,c#,wpf,vb.net,backgroundworker,C#,Wpf,Vb.net,Backgroundworker,WPF vb.net桌面应用程序 我有一个简单的测试布局。一个main窗口,btnMain,frame1,page1和btnPage1. 如果btnPage1click事件正忙于background worker(正在下载某些内容),在后台worker从第1页完成之前,阻止用户在主窗口上单击btnMain的最佳方法是什么 添加*:我可以使用NavigationService.Navigating事件在backgroundworker为false(完成)之前警告用户吗?我该怎么做 如果您有多个控件
main窗口,btnMain,frame1,page1
和btnPage1.
如果btnPage1
click事件正忙于background worker
(正在下载某些内容),在后台worker从第1页完成之前,阻止用户在主窗口上单击btnMain
的最佳方法是什么
添加*:我可以使用NavigationService.Navigating事件在backgroundworker为false(完成)之前警告用户吗?我该怎么做 如果您有多个控件需要禁用,请将页面上的所有控件包装为一个
它是WPF工具包的一部分,您可以这样使用它:
<xctk:BusyIndicator IsBusy="{Binding IsBusy}" >
<ContentControl Style="{StaticResource SampleContent}"/>
</xctk:BusyIndicator>
当IsBusy
(视图模型上的属性)为true时,这将禁用其中的所有内容
因此,在开始下载时将其设置为true
,并在下载完成事件中将其重置为false
该控件有一个BusyContent
属性,可用于显示自定义消息。您甚至可以自定义消息内容以显示下载进度:
禁用btnMain并在backgroundworker完成任务时重新启用它。我认为下载按钮上会出现失焦事件,但当backgroundworker为true时,该按钮被隐藏。当backgroundworker为true时,我确实有一个取消按钮。我可以试试。然而,我只是不知道这最好的选择是什么?@BenjaminJones当你失去注意力的时候,你为什么要这么做?在触发BGW completed事件时,单击btnPage1
禁用btnMain
,启用btnMain
。就是这样。如果负责下载触发的按钮是隐藏的,用户也不能点击它。这是你的选择-隐藏或禁用。虽然我认为禁用按钮不会让用户感到困惑,但他仍然知道下载是可能的,但不是正确的now@BenjaminJones它非常简单,可以通过编程禁用所有按钮,甚至整个表单。只需遍历整个控制树即可禁用所有按钮。