MessageDialog разбивается на Windows Phone 8.1 с тремя командами
Я пытаюсь добавить 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();
Это отлично работает в настольном приложении Windows, но когда я беру один и тот же код и пытаюсь использовать его для приложения для Windows-телефона, у него нет проблем с добавлением третьей команды, но когда она доходит до ожидающего сообщенияDialog.ShowAsync(), он выйдет из строя с необработанным исключением. Интересно, что это не сбой так же, как приложение для настольных компьютеров, когда вы добавляете 4 команды. Для этого он будет генерировать исключение, когда вы попытаетесь добавить 4-ю команду. По телефону у него не будет проблем с этим, но он не будет работать, когда он попытается показать сообщениеDialog.
Я что-то упускаю, или максимальное количество команд на MessageDialog тихо набирается с 3 до 2, когда вы на телефоне?
Ответы
Ответ 1
вы можете использовать только две команды для следующего события (Windows.UI.Popups.MessageDialog
).
Здесь образец.
private async void Button_Click(object sender, RoutedEventArgs e)
{
//Message Box.
MessageDialog msg = new MessageDialog("Here 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.
}
}