如果第1页上的backgroundworker为true,WPF会在MainWindow上停止单击事件

时间:2013-06-18 19:33:45

标签: c# wpf vb.net backgroundworker

WPF vb.net桌面应用。

我有一个简单的测试布局。 MainWindow, btnMain, frame1, page1btnPage1.

如果btnPage1点击事件忙于background worker(正在下载内容),阻止用户点击btnMain上的Main Window的最佳方法是什么后台工作者从第1页完成了吗?

ADD *:我可以使用NavigationService.Navigating事件在backgroundworker为false(完成)之前警告用户吗?我怎么样?

1 个答案:

答案 0 :(得分:0)

如果您有多个控件需要禁用,请将页面上的所有控件包装在BusyIndicator中。

它是WPF工具包的一部分,您可以像这样使用它:

<xctk:BusyIndicator IsBusy="{Binding IsBusy}" >
        <ContentControl Style="{StaticResource SampleContent}"/>
</xctk:BusyIndicator>

IsBusy(视图模型上的属性)为真时,这将禁用其中的所有内容。

在开始下载时将其设置为true,并在下载完成的事件中将其重置为false

该控件具有BusyContent属性,可用于显示自定义消息。您甚至可以自定义消息的内容以显示下载进度:

Busy indicator variants