WPF - 将窗口带到前面

Ben*_*ual 12 .net c# wpf

我有一个WPF窗口,我没有关闭.相反,我做Hide()和Show()它.现在,当我在记录中的网格中双击我的MainWindow时,将触发Show()窗口,窗口将始终显示在MainWindow后面.我已经尝试了休息,但没有成功:

view.Show();
view.Activate();
view.Topmost = true;
view.Topmost = false;
view.Focus();       
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以让窗户绝对到前面?我无法将MainWindow设置为所有者.

HCL*_*HCL 28

Window.Activate是要走的路(如果你不想设置为所有者).如果这不起作用(如您所述),则在其他位置出现错误.也许你的MainWindow已经TopMost开始了true?或者您有一个延迟调用,主要关注您的主窗口或控件?

除非您希望阻止整个应用程序直到模态打开窗口关闭,否则调用另一个答案中建议的ShowDialog()不是一个选项.

如果WPF,Win32-Api中的错误也会影响窗口管理,但问题的描述听起来不像这样.

另外这里是黑客,但我希望你不需要它:

Dispatcher.BeginInvoke(new Action(delegate {       
        view.Activate();
        }), System.Windows.Threading.DispatcherPriority.ContextIdle, null);
Run Code Online (Sandbox Code Playgroud)