【问题标题】:How do bring a WPF Window to front?如何将 WPF 窗口置于前面?
【发布时间】:2010-08-03 18:20:23
【问题描述】:

我创建了一个单实例应用程序,如果用户多次启动该应用程序,我想激活一个已经打开的窗口。这很好,但是我有一个问题,如果已经打开的窗口超出了另一个应用程序窗口,我必须把它放在前面。

我尝试过 window.Focus() 和 window.Show() 但它们似乎都不起作用。作为一种解决方法,我使用...

bool oldTopMost = window.Topmost;
window.Topmost = true;
window.Topmost = oldTopMost;
window.Focus();

...这可以完成工作,但在我看来非常难看。有没有人对此有更好的解决方案?

【问题讨论】:

    标签: wpf


    【解决方案1】:

    您可以改用Window.Activate

    window.Activate();
    

    这是相当于调用 SetForegroundWindow 的 WPF。

    【讨论】:

    • 要恢复窗口,如果它被最小化使用:if (myWindow.WindowState == WindowState.Minimized) myWindow.WindowState = WindowState.Normal; 它还将保留窗口的最大化状态,而不是将其恢复为正常状态。
    猜你喜欢
    • 2011-11-04
    • 2012-10-08
    • 2017-12-02
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多