那里所有的编码员, 在标记此副本之前,请读到最后一行。
我在主应用程序窗口下遇到隐藏对话框的问题。 我检查了所有参数,即Topmost和Owner to make对话框。 最后我发现我的问题在于所有者是因为所有者是错误的。
这是我的伪:
问题: 错误弹出窗口不会出现,并在其他窗口后隐藏。
我的代码:
if (popupWindow.Owner == null) && popupWindow != System.Windows.Application.Current.MainWindow)
{
popupWindow.Owner = System.Windows.Application.Current.MainWindow;
}
我找到了什么: 当我调试代码时,我已经观察到了 - 登录窗口变为最新状态.Mainwindow首先启动。登录后我只是隐藏窗口而不是关闭它。现在,在成功登录后,我启动主窗口(这是活动窗口,而不是实际主窗口:),令人困惑)
在此之后,当弹出窗口显示时,上面提到的代码正在执行,奇怪的是 System.Windows.Application.Current.MainWindow 保存登录窗口的值并将所有者设置为登录窗口,这使弹出窗口隐藏在其他窗口后面。
如何从 System.Windows.Application.Current.Windows 列表中删除登录窗口?
是否有任何快捷方法可以在 System.Windows.Application.Current.MainWindow 上设置活动窗口并每次引用它?
答案 0 :(得分:0)
- 当有人点击exe时,打开登录窗口(我有一个不同的项目,login.dll)
- 登录成功后,启动主窗口(这是我的实际主窗口,mainwindow.dll)
Application.Current.MainWindow = MyNewMainWindow;
- 现在在启动主窗口后的某个地方,我启动弹出窗口(第三个窗口 - 这是单独的错误处理项目,errorhandler.dll)