我正在尝试使用Dispatcher.Invoke
显示来自其他MessageBox
的{{1}}。
Thread
确实出现了。但是,如果不点击MessageBox
上的OK
按钮,我仍然可以控制主窗口。
我在想是否有办法在点击MessageBox
按钮之前阻止主窗口输入?
感谢任何帮助。
我到目前为止的代码:
OK
答案 0 :(得分:8)
确保消息框阻止窗口的唯一方法是将窗口传递到消息框。
void ShowError(String message, Window windowToBlock) //I call this function in another thread
{
if (this.Dispatcher.CheckAccess())
MessageBox.Show(windowToBlock, message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
else
{
this.Dispatcher.Invoke(
new Action(() =>
{
MessageBox.Show(windowToBlock, message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
}));
}
}