Подтвердить что ты не робот

Как довести окно WPF до фронта?

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

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

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

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

4b9b3361

Ответ 1

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

window.Activate();

Это равнозначный WPF вызов SetForegroundWindow.