C# 如何在Windows应用商店应用程序中显示消息?
如何在windows 8应用程序中使用c#like calling MessageBox.Show()在windows phone 7中显示消息框?应该适合您的需要C# 如何在Windows应用商店应用程序中显示消息?,c#,windows-8,C#,Windows 8,如何在windows 8应用程序中使用c#like calling MessageBox.Show()在windows phone 7中显示消息框?应该适合您的需要 MessageDialog msgDialog = new MessageDialog("Your message", "Your title"); //OK Button UICommand okBtn = new UICommand("OK"); okBtn.Invoked = OkBtnClick;
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.您可以跟随了解更多信息。
更简单的方法是显示消息文本和“确定”按钮。使用
Windows.UI.Popups
namespace。创建一个方法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");
对于确认类型的消息框,我的简单方法是:
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应用程序中,在应用程序进行Window.Current.Active()调用之前,MessageDialog不会显示,这通常发生在应用程序类的OnLaunched()方法中。如果您试图使用MessageDialog显示启动异常之类的内容,请务必记住这一点
我的测试表明MessageDialog.ShowAsync()实际上可能会等待,但如果尚未调用Window.Current.Active(),则不会显示对话框,因此从代码执行的角度来看,看起来一切正常,但不会显示对话框
如果目标是在启动期间显示异常,我可以想到两个选项(可能还有更多)
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();
}
MessageDialog类位于哪个命名空间中contained@user1547566我在答案中链接了这个类。难道没有更简单的方法吗?只要在它上面做一个包装,它就会变得更简单。你几乎不应该使用
async void
方法。@svick:这是什么原因?@DominikC因为没有办法知道它何时完成,这也使得错误处理几乎不可能。有关详细信息,请参见。