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