如何以编程方式关闭消息对话框

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

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

我该如何关闭它?

而不是试图找到一种方法来关闭它,尝试这为AsyncCommand声明一个实例变量;

 AsyncCommand command; command = md.ShowAsync(); 

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

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

//做东西/尝试块