This question already has answers here:
MessageDialog ShowAsync throws accessdenied exception on second dialog
(5个答案)
6年前关闭。
我认为我不需要粘贴代码。这是C#。
基本上,我创建了一个MessageDialog,显示了它,并从一个按钮调用了UICommandInvokedHandler。
在该处理程序内,我执行其他可能导致调用另一个MessageDialog.ShowAsync的项。但是,第二个调用给出了Unthorized Access Exception。
我已经尝试过一些事情,例如引发事件,以试图在UI THread上强制创建新的MessageDialog,但是这样做是相同的。
关于如何解决这个问题的任何建议?粗略地讲,我试图在对话框中说“您确定吗?是/否”。如果是,它会执行部分内容并且可以弹出其他对话框以提供随机错误信息。
确定代码:
后来.....
叫这个.....
(5个答案)
6年前关闭。
我认为我不需要粘贴代码。这是C#。
基本上,我创建了一个MessageDialog,显示了它,并从一个按钮调用了UICommandInvokedHandler。
在该处理程序内,我执行其他可能导致调用另一个MessageDialog.ShowAsync的项。但是,第二个调用给出了Unthorized Access Exception。
我已经尝试过一些事情,例如引发事件,以试图在UI THread上强制创建新的MessageDialog,但是这样做是相同的。
关于如何解决这个问题的任何建议?粗略地讲,我试图在对话框中说“您确定吗?是/否”。如果是,它会执行部分内容并且可以弹出其他对话框以提供随机错误信息。
确定代码:
public static async void WriteMessageDialog(string message, string buttonText1, UICommandInvokedHandler handler1, string buttonText2, UICommandInvokedHandler handler2)
{
MessageDialog msgDlg = new MessageDialog(message);
msgDlg.Commands.Add(new UICommand(buttonText1, handler1));
msgDlg.Commands.Add(new UICommand(buttonText2, handler2));
// Set the default button to be enabled and default on escape key pressed
msgDlg.DefaultCommandIndex = 0;
msgDlg.CancelCommandIndex = 0;
// Show the window
await msgDlg.ShowAsync();
}
后来.....
// THey original Message Dialog
RTUtilities.WriteMessageDialog(
_resourceLoader.GetString("DetelePersonConfirm"),
_resourceLoader.GetString("Delete"),
new UICommandInvokedHandler(this.CommandDeletePersonHandler), _resourceLoader.GetString("Cancel"),
new UICommandInvokedHandler(this.CommandCancelHandler));
叫这个.....
private async void CommandDeletePersonHandler(IUICommand command)
{
MessageDialog msgDlg = new MessageDialog(_resourceLoader.GetString("DeleteIndividualError"));
await msgDlg.ShowAsync();
}
最佳答案
好吧,问题的核心是您试图在仍在播放消息对话框的同时打开它。
可能有更优雅的方法,但是您可以使用ShowAsync的返回来标识所选命令,然后显式调用其处理程序,这样,第一个弹出窗口在第二个弹出窗口出现之前就被消除了。为此快速测试表明该方法可行。
关于c# - WinRT C#MessageDialog.ShowAsync-未经授权的访问异常-,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15915269/
10-12 06:33