スポンサーサイト

--.--.--.--.--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

表示中のMessageDialogをコードから消す

2012.09.27.Thu.23:23
ちょっと調べてみたけど、なかなか答えにたどり着けなかったのでメモ。

通常、一度表示したMessageDialogを消すには、MessageDialog上のボタンをクリックしないと消えません。
しかし、時にはコード側からMessageDialogを消したいこともあります。
(基本的にはそんなことをしないようにUI等を設計する必要がありますが…)

とりあえず、下記コードを実行すると5秒後に消えます。
ThreadPoolTimerで行けるということはUIスレッドじゃなくてもいいのかな?


var dialog = new MessageDialog("test");
var cmd = dialog.ShowAsync(); // awaitを使わずに表示

// 5秒後にcmd(IAsyncOperation<IUICommand>)をキャンセル
ThreadPoolTimer timer = ThreadPoolTimer.CreateTimer(
(_) => { cmd.Cancel(); },
TimeSpan.FromSeconds(5));
スポンサーサイト
コメント

管理者のみに表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。