如何解决WPF在方法内部创建并显示一个新窗口并获取其结果
我在WPF中有一个Window
,我想在一个方法中创建并显示它的新实例。这是一个带有是 / 否按钮的消息框。
但是似乎该方法需要“关闭”以显示我的窗口。在此方法中,还有其他一些应受此窗口控制的影响。
private void MyNiceMethod()
{
MyWindow myWindow = new MyWindow();
myWindow.Show();
while (CrazyVariableInfluencedBymyWindow)
{//Wait}
//The bool CrazyVariableInfluencedBymyWindow is true usually.
//And a Button on myWindow set the var to false,so the code in my method
//continues
}
在方法“关闭”之前,有没有办法显示Window
?
解决方法
如果您要显示模式对话框,例如使用是和否进行确认,请使用ShowDialog
。
打开一个窗口,仅在新打开的窗口关闭时返回。
它返回在bool?
中设置为DialogResult
属性的true
值(false
,null
或MyWindow
)。默认值为false
。
private void MyNiceMethod()
{
MyWindow myWindow = new MyWindow();
var result = myWindow.ShowDialog();
CrazyVariableInfluencedBymyWindow = result.GetValueOrDefault();
}
,
是的,是的,由于Dispatcher正在忙于执行事件处理程序,因此不会显示该窗口。无休止的循环并不是一个好主意。而是显示窗口并设置DispatcherTimer以定期查找您的怪异变量,或者更好的是,仅使用事件。那就是他们的目的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。