首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MahApp MessageDialog隐藏

MahApp MessageDialog隐藏
EN

Stack Overflow用户
提问于 2017-09-13 05:37:41
回答 1查看 402关注 0票数 1

我使用两个线程,一个在WPF中用WPF询问用户问题,

另一个我想隐藏的MessageDialog,如何在下面的代码中隐藏MessageDialog中的HideMessageDialog()

我在做一些需要打断这个问题,同时保持主窗口打开的事情。所以,我需要一种方法来隐藏对话框后,真正显示。

代码语言:javascript
复制
    public void Execute()
    {
        Task showAsk = new Task(ShowAskingDialog);
        Task hideAsk = new Task(HideAskingByCode);

        showAsk.Start();
        hideAsk.Start();
    }

    public async void ShowAskingDialog()
    {
        Thread.Sleep(3000);

        this.MetroDialogOptions.ColorScheme = MetroDialogColorScheme.Accented;
        var msgbox_settings = new MetroDialogSettings { 
        AffirmativeButtonText = "I know", NegativeButtonText = "I don't know" };

        // puase at asking MessaageDialog
        var isKnow = await this.ShowMessageAsync(
                    "Question", "Do you know WPF?", 
                    MessageDialogStyle.AffirmativeAndNegative, msgbox_settings);

    }

    public void HideAskingByCode()
    {
        Thread.Sleep(5000);

        //How to Hide the MessageDialog by code, not by user click Button?
        HideMessageDialog();
    }

MessageDialog将显示如下所示,嵌入主窗口:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-13 07:09:55

感谢@Nobody和答案

隐藏MessageDialog可以使用通用HideMetroDialogAsync()

代码语言:javascript
复制
public void HideMessageDialog ()
{    
     this.Dispatcher.Invoke(
        async () =>{

            BaseMetroDialog dialogBeingShow = 
                await this.GetCurrentDialogAsync<BaseMetroDialog>();

            //Hide Current Single Dialog
            if(dialogBeingShow != null)
                await this.HideMetroDialogAsync(dialogBeingShow);

            //Or Hide All Dialogs
            while (dialogBeingShow != null)
            {
               await this.HideMetroDialogAsync(dialogBeingShow);
               dialogBeingShow = 
                   await this.GetCurrentDialogAsync<BaseMetroDialog>();
            }

                }
             );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46189603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档