这是一个与我类似的关于如何在 Win8 应用程序中以编程方式关闭 MessageDialog 的问题,但问题的作者使用的是 C#。我很好奇如何用 WinJS 解决这个问题。有没有办法用 WinJS 以编程方式取消 MessageDialog 而无需访问对话框本身中的 CommanUI 对象?我不能简单地调用与附加的 CommandUI 按钮关联的处理程序,因为在某些情况下,我不知道哪个按钮索引具有该功能。
有小费吗?
谢谢!
MessageDialog.showAsync
返回一个IAsyncOperation<IUICommand>
对象并继承自IAsyncInfo
. 该IAsyncInfo
接口包括一个cancel
一般取消异步操作的方法。在消息对话框的情况下,如果对话框仍然存在,则在异步操作上调用取消将关闭对话框。
var asyncOperation = messageDialog.showAsync();
asyncOperation.cancel();
可以在 MSDN 上找到有关WinRT 异步编程模式的更多信息。