【问题标题】:WPF window owner property issueWPF窗口所有者属性问题
【发布时间】:2017-06-23 11:32:12
【问题描述】:

我有一个WPF MainWindow,我可以在其中打开第二个,如下所示,以this post为例:

var win = new CalibrationWindow(){Owner = this};
win.ShowDialog();

我很少遇到以下运行时异常“cannot set owner property to a window that has not been shown previously”。

你有什么建议吗?提前致谢。

【问题讨论】:

  • 这可能表明this - 您的主窗口 - 尚未显示。
  • 不,显示主窗口是因为我在按下按钮后才打开第二个窗口。

标签: wpf exception owner


【解决方案1】:

按照此处的建议处理窗口的 StateChanged 或 Activated 事件并在此事件处理程序中设置 Owner 属性:

Having Trouble Setting Window's Owner in Parent's Constructor

var win = CalibrationWindow();
this.Activated += (s, e) => { win.Owner = this; };
win.ShowDialog();

【讨论】:

  • 如果我可以打开多个窗口怎么办?如果我执行以下 private void MainWindow_OnActivated(object sender, EventArgs e) { ((Window) sender).Owner = this; } 我第一次打开窗户时有一种感觉。
  • 父窗口必须已打开,您才能将其用作子窗口的所有者。
  • 当然,MainWindow 已显示,否则我无法按下按钮以显示第二个窗口。
猜你喜欢
  • 2014-10-12
  • 1970-01-01
  • 1970-01-01
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 1970-01-01
  • 2020-06-08
相关资源
最近更新 更多