gpt4 book ai didi

c# - MessageDialog 在 Windows Phone 8.1 上用 3 个命令中断

转载 作者:可可西里 更新时间:2023-11-01 08:21:20 27 4
gpt4 key购买 nike

我正在尝试使用 3 个命令将 MessageDialog 添加到 Windows Phone 8.1 应用程序 (WinRT)。查看 MessageDialog 的文档:

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.popups.messagedialog.aspx

它说“对话框有一个命令栏,最多可以支持三个命令”,所以我认为这不会有问题。我采用了他们的示例(在文档中找到)并从中制作了一个简单的测试应用程序,它在台式机和 Windows Phone 上都运行良好。然后,我采用相同的示例并向其添加一个命令:

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 Phone 应用程序时,添加第三个命令没有问题但是当它到达 await messageDialog.ShowAsync( ) 行,它将因未处理的异常而崩溃。有趣的是,当您添加 4 个命令时,它不会像桌面应用程序那样崩溃。为此,当您尝试添加第 4 个命令时,它会抛出异常。在手机上,它不会有问题,但当它尝试显示消息对话框时它不会工作。

我是不是遗漏了什么,或者当您在打电话时,MessageDialog 上的最大命令数是否悄悄地从 3 减少到 2?

最佳答案

您只能对以下事件 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.
}
}

关于c# - MessageDialog 在 Windows Phone 8.1 上用 3 个命令中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24686230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com