MessageDialog msgDialog = new MessageDialog("Your message", "Your title");
//OK Button
UICommand okBtn = new UICommand("OK");
okBtn.Invoked = OkBtnClick;
msgDialog.Commands.Add(okBtn);
//Cancel Button
UICommand cancelBtn = new UICommand("Cancel");
cancelBtn.Invoked = CancelBtnClick;
msgDialog.Commands.Add(cancelBtn);
//Show message
msgDialog.ShowAsync();
还有你的回拨
private void CancelBtnClick(IUICommand command)
{
}
private void OkBtnClick(IUICommand command)
{
}
P.S. 你可以跟随这个教程了解更多。
MessageDialog 类 可以满足您的需求。
我的简单方法,用于确认类型的消息框:
var dlg = new MessageDialog("Are you sure?");
dlg.Commands.Add(new UICommand("Yes", null, "YES"));
dlg.Commands.Add(new UICommand("No", null, "NO"));
var op = await dlg.ShowAsync();
if ((string)op.Id == "YES")
{
//Do something
}
如果要更简单地显示消息文本和“确定”按钮,可以使用Windows.UI.Popups
命名空间。创建一个名为messagebox()
的方法。
using Windows.UI.Popups;
protected async void messageBox(string msg)
{
var msgDlg = new Windows.UI.Popups.MessageDialog(msg);
msgDlg.DefaultCommandIndex = 1;
await msgDlg.ShowAsync();
}
然后在您的代码中调用此方法,如下所示:
messageBox("Unexpected error held");
async void
方法。 - svick额外的提示:
在现代Windows应用程序中,如果你的应用程序没有进行Window.Current.Active()调用,那么MessageDialog将不会在其之前显示,而这个调用通常发生在应用程序类的OnLaunched()方法中。如果你试图使用MessageDialog来显示启动异常之类的内容,那么这一点很重要。
我的测试表明,如果Window.Current.Active()尚未被调用,MessageDialog.ShowAsync()实际上可能会等待,但对话框不会显示,因此从代码执行的角度来看,一切都像是正常工作,但却没有显示对话框。
如果目标是在启动时显示异常,我可以想到两个选项(可能还有其他选项)。
捕获异常信息,然后等待在Window.Current.Activate()之后再显示它。如果异常使应用程序可以从中恢复并继续启动,则此方法可行。例如,如果在恢复保存的状态信息时出现错误,应用程序可能希望向用户报告该错误,但然后继续启动,就好像没有保存状态一样。
如果情况是应用程序已经放弃并打算终止,但想让用户知道发生了什么,那么另一个解决方案可能是拥有一个单独的专用代码块/方法,将一个新的干净框架插入到Windows.Current.Content中,使用Windows.Current.Activate()激活它,然后调用MessageDialog.ShowAsync()。我没有尝试过这种方法,所以不确定是否还需要满足其他条件,例如可能需要将页面加载到该框架中。
用于页面的样式:
private async void AppBarButton_Click(object sender, RoutedEventArgs e)
{
Windows.UI.Popups.MessageDialog a = new Windows.UI.Popups.MessageDialog("hello this is awth");
await a.ShowAsync();
}