我正在尝试在WinRT应用中关闭MessageDialog。我注意到如果我试图一次显示两个消息对话框,我得到一个UnauthorizedAccessException。为了避免这种情况,我想关闭现有的消息对话框,如果它是打开的。我用它来显示对话框:
MessageDialog md = new MessageDialog(" ");
private void MessageBox(string s)
{
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
{
md.Content = s;
//CLOSE HERE
md.ShowAsync();
}
);
}
如何关闭它?
答案 0 :(得分:6)
而不是试图找到关闭它的方法,试试这个 声明AsyncCommand的实例变量;
AsyncCommand command;
command = md.ShowAsync();
然后在你的commandhandler中,在运行方法之前检查命令是否为空
if(command!=null)
{
command.Cancel();
}
// 做东西/尝试阻止