我想在主线程上创建一个窗口,使其行为类似于messagebox
窗口。换句话说,我正在寻找类似的东西:
var myView = new Views.MyWindow();
myView.Show(); // I want to wait here until myView is closed?
// continue execution once myView is closed
我知道我可以创建一个信号量来实现这一点并让其他窗口一旦关闭就释放信号量但消息框窗口如何设法在同一个线程上执行它?
答案 0 :(得分:3)
您必须使用ShowDialog()
代替Show()
从MSDN引用:
调用此方法时,直到关闭对话框后才会执行其后面的代码。
ShowDialog()
方法返回bool?
个对象。使用它,您将能够知道用户是否关闭了窗口,点击了Accept
按钮等:
var result = myView.ShowDialog();
if (result) {
//do something here...
}