我已经创建了一个单实例应用程序,并且如果用户多次启动该应用程序,则希望激活一个已打开的窗口。这可以正常工作,但是我有一个问题,如果已经打开的窗口超出了另一个应用程序窗口,则必须将其置于最前面。

我尝试过window.Focus()和window.Show(),但它们似乎都无法正常工作。作为解决方法,我使用…

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


…可以完成工作,但是在我看来非常难看。有谁对此有更好的解决方案?

最佳答案

您可以改用Window.Activate

window.Activate();


这是WPF等效于调用SetForegroundWindow的过程。

关于wpf - 如何将WPF窗口置于最前面?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3399495/

10-11 04:21
查看更多