c# – 在WPF中忙碌时的消息框
发布时间:2020-12-16 00:02:22 所属栏目:百科 来源:网络整理
导读:如何在应用程序在后台忙碌时显示消息框或其他类似通知显示,类似于此模型: 解决方法 在 WPF Extended Toolkit中有一个 Busy Indicator我已经使用了很多: 该工具包可通过NuGet方便地获得,这使得将其添加为项目的参考非常容易.我几乎在所有最近的WPF项目中都
如何在应用程序在后台忙碌时显示消息框或其他类似通知显示,类似于此模型:
解决方法
在
WPF Extended Toolkit中有一个
Busy Indicator我已经使用了很多:
该工具包可通过NuGet方便地获得,这使得将其添加为项目的参考非常容易.我几乎在所有最近的WPF项目中都亲自使用过它(以及该工具包中的许多其他有用的控件). 要使用它,请使用忙指示符在XAML代码中围绕控件: <extToolkit:BusyIndicator ...> <Grid> <Button Content="Click to do stuff" /> <!-- your other stuff here --> </Grid> </extToolkit:BusyIndicator> 然后,您只需要在需要弹出窗口时将IsBusy属性设置为true,并在隐藏它时将其设置为false.在适当的MVVM体系结构中,您通常会将XAML中的属性数据绑定到viewmodel中的属性,然后将其设置为true / false: <extToolkit:BusyIndicator IsBusy="{Binding IsBusy}" > 但是如果你没有使用MVVM,你当然可以从你的代码中手动设置它,通常是在按钮点击处理程序中: 为控件命名,以便能够从代码中引用它: <extToolkit:BusyIndicator x:Name="busyIndicator" > 然后,在您的xaml.cs文件中: void myButton_Click(object sender,RoutedEventArgs e) { busyIndicator.IsBusy = true; // Start your background work - this has to be done on a separate thread,// for example by using a BackgroundWorker var worker = new BackgroundWorker(); worker.DoWork += (s,ev) => DoSomeWork(); worker.RunWorkerCompleted += (s,ev) => busyIndicator.IsBusy = false; worker.RunWorkerAsync(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |