Car*_*son 12 c# messagedialog windows-runtime windows-phone-8.1
我正在尝试使用3个命令将MessageDialog添加到Windows Phone 8.1应用程序(WinRT).查看MessageDialog的文档:
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.popups.messagedialog.aspx
它说"对话框有一个命令栏,可以支持最多三个命令",所以我认为这不会是一个问题.我拿了他们的例子(在文档中找到)并制作了一个简单的测试应用程序,它在桌面和Windows手机上都运行得很好.然后,我采用相同的示例并向其添加了一个命令:
var messageDialog = new MessageDialog("No internet connection has been found.");
// Add commands and set their callbacks; both buttons use the same callback function instead of inline event handlers
messageDialog.Commands.Add(new UICommand(
"Try again",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
messageDialog.Commands.Add(new UICommand(
"Something else",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
messageDialog.Commands.Add(new UICommand(
"Close",
new UICommandInvokedHandler(this.CommandInvokedHandler)));
// Set the command that will be invoked by default
messageDialog.DefaultCommandIndex = 0;
// Set the command to be invoked when escape is pressed
messageDialog.CancelCommandIndex = 1;
// Show the message dialog
await messageDialog.ShowAsync();
Run Code Online (Sandbox Code Playgroud)
这在Windows桌面应用程序上工作正常,但是当我使用完全相同的代码并尝试将其用于Windows手机应用程序时,添加第3个命令没有问题但是当它到达等待messageDialog.ShowAsync()行时,它会因未处理的异常而崩溃.有趣的是,当您添加4个命令时,它不会像桌面应用程序那样崩溃.为此,当您尝试添加第4个命令时,它将抛出异常.在手机上,它不会有问题,但是当它试图显示messageDialog时它将无法工作.
我错过了什么,或者当你在手机上时,MessageDialog上的最大命令数是否会从3下降到2?
小智 17
您只能对以下事件使用两个命令Windows.UI.Popups.MessageDialog.
这是一个例子..
private async void Button_Click(object sender, RoutedEventArgs e)
{
//Message Box.
MessageDialog msg = new MessageDialog("Here's the content/string.", "Hello!");
//Commands
msg.Commands.Add(new UICommand("Ok", new UICommandInvokedHandler(CommandHandlers)));
msg.Commands.Add(new UICommand("Quit", new UICommandInvokedHandler(CommandHandlers)));
await msg.ShowAsync();
//end.
}
public void CommandHandlers(IUICommand commandLabel)
{
var Actions = commandLabel.Label;
switch (Actions)
{
//Okay Button.
case "Ok" :
MainpageName.Focus(Windows.UI.Xaml.FocusState.Pointer);
break;
//Quit Button.
case "Quit" :
Application.Current.Exit();
break;
//end.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10832 次 |
| 最近记录: |