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 回答