如标题所示,
如何从HTML5 Windows应用商店应用中的代码中关闭MessageDialog?
到目前为止我的代码:
var msg = new Windows.UI.Popups.MessageDialog("Please wait");
msg.commands.append(new Windows.UI.Popups.UICommand("OK",
function (command) {
...
}));
msg.showAsync();
然后我想关闭这个弹出的代码,我还没有找到任何方法 在规范中
msg.close();
有办法吗?
感谢
答案 0 :(得分:1)
您的邮件是“请稍候”这一事实告诉我您可能想要使用其他工具来完成这项工作。
如果你要做的是告诉用户你在后台做了一些他们需要等待的事情,可以考虑使用Progress控件,如下所示:
http://msdn.microsoft.com/en-us/library/windows/apps/hh465487.aspx
如果您使用进度控件,则既可以包含带有所需文本的文本标签,也可以在完成要求用户等待的任何任务时关闭进度控件。
为了回答你原来的问题,我不相信有任何用于以编程方式解除MessageDialog的API,因为这会破坏此控件的交互模式,即应用程序显示消息,然后允许用户在他们准备好的时候解雇它。
希望有所帮助。
有关Windows应用商店应用开发的详细信息,请注册App Builder。
答案 1 :(得分:1)
我认为你想要使用弹出窗口,类似于answer。该链接解决了一个稍微不同的问题,因为它在超时后关闭了弹出按钮。
但是,您应该能够定义您和用户可以关闭的弹出按钮。在这两种情况下,您最终都会调用类似的内容:
flyout.winControl.hide(); // Dismiss the flyout
答案 2 :(得分:0)
看看这个......
(function(){
"use strict";
var page = WinJS.UI.Pages.define("/html/cancelcommand.html", {
ready: function (element, options) {
document.getElementById("cancelCommand").addEventListener("click", cancelCommand_Click, false);
}
});
// Click handler for the 'cancelCommand' button.
// Demonstrates setting the command to be invoked when the 'escape' key is pressed.
// Also demonstrates retrieval of the label of the chosen command and setting a callback to a function.
// A message will be displayed indicating which command was invoked.
// In this scenario, 'Try again' is selected as the default choice, and the 'escape' key will invoke the command named 'Close'
function cancelCommand_Click() {
// Create the message dialog and set its content
var msg = new Windows.UI.Popups.MessageDialog("No internet connection has been found.");
// Add commands and set their command handlers
msg.commands.append(new Windows.UI.Popups.UICommand("Try again", commandInvokedHandler));
msg.commands.append(new Windows.UI.Popups.UICommand("Close", commandInvokedHandler));
// Set the command that will be invoked by default
msg.defaultCommandIndex = 0;
// Set the command to be invoked when escape is pressed
msg.cancelCommandIndex = 1;
// Show the message dialog
msg.showAsync();
}
function commandInvokedHandler(command) {
// Display message
WinJS.log && WinJS.log("The '" + command.label + "' command has been selected.", "sample", "status");
}
}());