3

Win8アプリで MessageDialog をプログラムで閉じる方法に関する同様の質問がありますが、質問の作成者は C# を使用しています。WinJSで問題を解決する方法に興味があります。ダイアログ自体内の CommanUI オブジェクトにアクセスせずに、プログラムで WinJS を使用して MessageDialog をキャンセルする方法はありますか? 追加された CommandUI ボタン​​に関連付けられたハンドラーを単純に呼び出すことはできません。場合によっては、どのボタン インデックスにその機能があるかがわからないからです。

任意のヒント?

ありがとう!

4

1 に答える 1

6

MessageDialog.showAsyncオブジェクトを返し、IAsyncOperation<IUICommand>から継承しIAsyncInfoます。IAsyncInfoインターフェイスには、cancel非同期操作を一般的にキャンセルするメソッドが含まれています。メッセージ ダイアログの場合、非同期操作でキャンセルを呼び出すと、ダイアログがまだ存在する場合はダイアログが閉じられます。

var asyncOperation = messageDialog.showAsync();
asyncOperation.cancel();

WinRT 非同期プログラミング パターンの詳細については、MSDN を参照してください。

于 2013-08-29T17:13:12.920 に答える