Как вывести окно WPF на передний план?

Я создал приложение для одного экземпляра и хочу активировать уже открытое окно, если пользователь запускает приложение несколько раз. Это прекрасно работает, однако у меня есть проблема, что, если уже открытое окно находится за пределами окна другого приложения, я должен вывести его на передний план.

Я пробовал window.Focus() и window.Show(), но оба они, похоже, не работают. В качестве обходного пути я использую...

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

... это делает работу, но выглядит для меня очень некрасиво. У кого-нибудь есть лучшее решение для этого?

1 ответ

Решение

Вы можете использовать Window.Activate вместо:

window.Activate();

Это WPF, эквивалентный вызову SetForegroundWindow.

Другие вопросы по тегам