3

这是一个与我类似的关于如何在 Win8 应用程序中以编程方式关闭 MessageDialog 的问题,但问题的作者使用的是 C#。我很好奇如何用 WinJS 解决这个问题。有没有办法用 WinJS 以编程方式取消 MessageDialog 而无需访问对话框本身中的 CommanUI 对象?我不能简单地调用与附加的 CommandUI 按钮关联的处理程序,因为在某些情况下,我不知道哪个按钮索引具有该功能。

有小费吗?

谢谢!

4

1 回答 1

6

MessageDialog.showAsync返回一个IAsyncOperation<IUICommand>对象并继承自IAsyncInfo. 该IAsyncInfo接口包括一个cancel一般取消异步操作的方法。在消息对话框的情况下,如果对话框仍然存在,则在异步操作上调用取消将关闭对话框。

var asyncOperation = messageDialog.showAsync();
asyncOperation.cancel();

可以在 MSDN 上找到有关WinRT 异步编程模式的更多信息。

于 2013-08-29T17:13:12.920 回答