加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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();
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读