如何阻止对话窗口隐藏在其他窗口后面 - Mainwindow,loginwindow和dialogbox

时间:2017-04-13 07:36:32

标签: c# wpf windows mvvm

那里所有的编码员, 在标记此副本之前,请读到最后一行。

我在主应用程序窗口下遇到隐藏对话框的问题。 我检查了所有参数,即Topmost和Owner to make对话框。 最后我发现我的问题在于所有者是因为所有者是错误的。

这是我的伪:

  • 当有人点击exe时,打开登录窗口(我有一个不同的项目, login.dll)
  • 登录成功后,启动主窗口(这是我的实际 mainwindow,mainwindow.dll)
  • 现在在启动主窗口后的某个地方,我启动弹出窗口(第三个 window -this是单独的错误处理项目,errorhandler.dll)

问题: 错误弹出窗口不会出现,并在其他窗口后隐藏。

我的代码:

                   if (popupWindow.Owner == null) && popupWindow != System.Windows.Application.Current.MainWindow)
                {
                    popupWindow.Owner = System.Windows.Application.Current.MainWindow;
                }

我找到了什么: 当我调试代码时,我已经观察到了 - 登录窗口变为最新状态.Mainwindow首先启动。登录后我只是隐藏窗口而不是关闭它。现在,在成功登录后,我启动主窗口(这是活动窗口,而不是实际主窗口:),令人困惑)

在此之后,当弹出窗口显示时,上面提到的代码正在执行,奇怪的是 System.Windows.Application.Current.MainWindow 保存登录窗口的值并将所有者设置为登录窗口,这使弹出窗口隐藏在其他窗口后面。

  • 成功登录后我无法直接关闭登录窗口 将终止申请,因为我的主窗口是2-3 加载分钟(加载巨大的东西) 如何将主窗口设置为 System.Windows.Application.Current.MainWindow ,因为一旦主窗口加载完成,弹出窗口就会在下一秒开始出现。??

如何从 System.Windows.Application.Current.Windows 列表中删除登录窗口?

是否有任何快捷方法可以在 System.Windows.Application.Current.MainWindow 上设置活动窗口并每次引用它?

1 个答案:

答案 0 :(得分:0)

  
      
  • 当有人点击exe时,打开登录窗口(我有一个不同的项目,login.dll)
  •   
  • 登录成功后,启动主窗口(这是我的实际主窗口,mainwindow.dll)
  •   
 Application.Current.MainWindow = MyNewMainWindow;
  
      
  • 现在在启动主窗口后的某个地方,我启动弹出窗口(第三个窗口 - 这是单独的错误处理项目,errorhandler.dll)
  •   
相关问题