如何以编程方式关闭Message Dialog

时间:2012-10-02 21:32:35

标签: c# windows-8 windows-runtime messagedialog

我正在尝试在WinRT应用中关闭MessageDialog。我注意到如果我试图一次显示两个消息对话框,我得到一个UnauthorizedAccessException。为了避免这种情况,我想关闭现有的消息对话框,如果它是打开的。我用它来显示对话框:

    MessageDialog md = new MessageDialog(" ");

    private void MessageBox(string s)
    {
        Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            md.Content = s;
            //CLOSE HERE
            md.ShowAsync();
        }
        );
    }

如何关闭它?

1 个答案:

答案 0 :(得分:6)

而不是试图找到关闭它的方法,试试这个 声明AsyncCommand的实例变量;

AsyncCommand command;

command = md.ShowAsync();

然后在你的commandhandler中,在运行方法之前检查命令是否为空

if(command!=null)
{
command.Cancel();
}

// 做东西/尝试阻止