B.K*_*.K. 6 c# windows wpf window
所以,我的许多 WPF 应用程序都遇到了一个问题,在关闭窗口的子窗口后,该窗口(通常是我的主窗口)将进入后台,在我打开的任何其他窗口之后。经过一番研究,我发现这个提交给微软的错误报告:错误报告和他们通常的回应“WPF 团队最近审查了这个问题,不会解决它......”
有没有人成功地解决了这个问题?它让我发疯,我想不出解决办法。
编辑:
我考虑了詹姆斯在他的回答中所推荐的内容,并且在几乎驳回了他的建议之后,由于窗户位于其他一切之上的不便性,我想出了这个:
ChildWindow.Closed += delegate
{
ChildWindow = null;
this.Topmost = true;
System.Threading.Thread.Sleep(1000);
this.Topmost = false;
};
Run Code Online (Sandbox Code Playgroud)
因此,当Closed()
引发孩子的事件时,我确保父窗口是最顶层的。然后,我让线程休眠 1 秒并将 topmost 设置为 false 以允许其他窗口覆盖此父窗口。
暂停的原因:如果我不使用暂停而只是this.Topmost = true
跟在后面this.Topmost = false
,那么效果永远不会发生,并且由于错误的时间安排,错误仍然会发生。
我不确定这是否是最好的方法,但它有效。微软需要在 WPF 上投入更多资源。
小智 2
将主窗口设置为:
Topmost=true
Run Code Online (Sandbox Code Playgroud)
这应该会有所帮助,但并不能完全解决问题。请记住,如果另一个应用程序具有该设置,它们最终可能会出现在该应用程序之上。让我知道这是否有帮助。
归档时间: |
|
查看次数: |
2288 次 |
最近记录: |