2

メインスレッドにウィンドウを作成して、ウィンドウのように動作させたいと思いmessageboxます。言い換えれば、私は次のようなものを探しています:

var myView = new Views.MyWindow();
myView.Show(); // I want to wait here until myView is closed?

// continue execution once myView is closed

これを実現するためにセマフォを作成し、閉じたら他のウィンドウにセマフォを解放させることができることは知っていますが、メッセージボックスウィンドウはどのようにして同じスレッドでそれを実行できますか?

4

1 に答える 1

3

ShowDialog()代わりに使用する必要がありますShow()

MSDNからの引用:

このメソッドが呼び出されると、それに続くコードはダイアログボックスが閉じられるまで実行されません。

ShowDialog()メソッドはオブジェクトを返しますbool?Acceptこれを使用すると、ユーザーがウィンドウを閉じたのか、ボタンをクリックしたのかなどを知ることができます。

var result = myView.ShowDialog();
if (result) {
    //do something here...
}
于 2013-03-06T22:59:22.343 に答える