5

WinRTアプリでMessageDialogを閉じようとしています。一度に2つのメッセージダイアログを表示しようとすると、UnauthorizedAccessExceptionが発生することに気づきました。これを回避するために、既存のメッセージダイアログが開いている場合は閉じたいと思います。これを使用してダイアログを表示します。

    MessageDialog md = new MessageDialog(" ");

    private void MessageBox(string s)
    {
        Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            md.Content = s;
            //CLOSE HERE
            md.ShowAsync();
        }
        );
    }

どうすれば閉じられますか?

4

1 に答える 1

6

それを閉じる方法を見つける代わりに、AsyncCommandのインスタンス変数を宣言してみてください。

AsyncCommand command;

command = md.ShowAsync();

次に、コマンドハンドラーで、メソッドを実行する前に、コマンドがnullかどうかを確認します

if(command!=null)
{
command.Cancel();
}

//何かをする/tryagainブロック

于 2012-10-04T09:47:01.120 に答える