创建类似于消息框的窗口,一旦关闭该窗口,代码将继续运行

本文关键字:窗口 代码 运行 继续 消息 类似于 创建 | 更新日期: 2023-09-27 18:02:44

我想在主线程上创建一个窗口,使它的行为像messagebox窗口。换句话说,我要找的是:

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

我知道我可以创建一个信号量来实现这一点,并有另一个窗口释放信号量一旦它关闭,但消息框窗口如何在同一线程上做到这一点?

创建类似于消息框的窗口,一旦关闭该窗口,代码将继续运行

您必须使用ShowDialog()而不是Show()

引用自MSDN:

当调用此方法时,直到对话框关闭后才执行它后面的代码。

ShowDialog()方法返回bool?对象。使用它,您将能够知道用户是否刚刚关闭了窗口,单击了Accept按钮等:

var result = myView.ShowDialog();
if (result) {
    //do something here...
}