Как вывести окно WPF на передний план?
Я создал приложение для одного экземпляра и хочу активировать уже открытое окно, если пользователь запускает приложение несколько раз. Это прекрасно работает, однако у меня есть проблема, что, если уже открытое окно находится за пределами окна другого приложения, я должен вывести его на передний план.
Я пробовал window.Focus() и window.Show(), но оба они, похоже, не работают. В качестве обходного пути я использую...
bool oldTopMost = window.Topmost;
window.Topmost = true;
window.Topmost = oldTopMost;
window.Focus();
... это делает работу, но выглядит для меня очень некрасиво. У кого-нибудь есть лучшее решение для этого?
1 ответ
Решение
Вы можете использовать Window.Activate вместо:
window.Activate();
Это WPF, эквивалентный вызову SetForegroundWindow.