【发布时间】:2014-03-17 17:13:06
【问题描述】:
所以,我的许多 WPF 应用程序都遇到了问题,在关闭窗口的子窗口后,该窗口(通常是我的主窗口)将进入后台,在我打开的任何其他窗口后面。经过一番研究,我发现了这个提交给微软的错误报告:Bug Report,他们通常的回复是“WPF 团队最近审查了这个问题,不会解决它......”
有没有人成功地自己解决了这个问题?它让我发疯,我无法找到解决方案。
编辑:
我对詹姆斯在回答中的建议进行了一些思考,由于窗户位于其他一切之上的不便性质,在几乎驳回了他的建议之后,我想出了这个:
ChildWindow.Closed += delegate
{
ChildWindow = null;
this.Topmost = true;
System.Threading.Thread.Sleep(1000);
this.Topmost = false;
};
所以,当孩子的Closed() 事件引发时,我确保父窗口位于最顶层。然后,我让线程休眠 1 秒并将 topmost 设置为 false 以允许其他窗口覆盖此父窗口。
暂停的原因:如果我不使用暂停,只使用this.Topmost = true 后跟this.Topmost = false,那么效果永远不会发生,并且由于时间安排问题仍然会出现错误错误。
我不确定这是否是最好的方法,但它确实有效。微软需要在 WPF 上投入更多资源。
【问题讨论】: