WPF vb.net桌面应用。
我有一个简单的测试布局。 MainWindow, btnMain, frame1, page1
和btnPage1.
如果btnPage1
点击事件忙于background worker
(正在下载内容),阻止用户点击btnMain
上的Main Window
的最佳方法是什么后台工作者从第1页完成了吗?
ADD *:我可以使用NavigationService.Navigating事件在backgroundworker为false(完成)之前警告用户吗?我怎么样?
答案 0 :(得分:0)
如果您有多个控件需要禁用,请将页面上的所有控件包装在BusyIndicator中。
它是WPF工具包的一部分,您可以像这样使用它:
<xctk:BusyIndicator IsBusy="{Binding IsBusy}" >
<ContentControl Style="{StaticResource SampleContent}"/>
</xctk:BusyIndicator>
当IsBusy
(视图模型上的属性)为真时,这将禁用其中的所有内容。
在开始下载时将其设置为true
,并在下载完成的事件中将其重置为false
。
该控件具有BusyContent
属性,可用于显示自定义消息。您甚至可以自定义消息的内容以显示下载进度: