Я знаю, что этот вопрос старый, но я не совсем понимаю, почему принятый ответ получил голоса ... или почему он был принят ... он не действительно отвечает на вопрос или предоставить решение и ответы, опубликованные в эти дни, которые так коротки, почти всегда отклоняются , проголосованными и / или удаленными сообществом. Ах, ну, я думаю, это было опубликовано в разное время.
В любом случае, как бы ни стара, у меня есть возможное решение для любого, кто может столкнуться с этим постом в будущем. Вы можете просто обработать Window.Deactivated
событие и / или Application.Deactivated
событие . Window.Deactivated
Событие происходит, когда окно становится фоновым окном , а Application.Deactivated
Событие происходит, когда приложение перестает быть приложением переднего плана .
Идея состоит в том, чтобы установить соответствующее свойство TopMost
равным true
каждый раз, когда ваше приложение или Window
теряет фокус:
private void Window_Deactivated(object sender, EventArgs e)
{
// The Window was deactivated
this.TopMost = true;
}
Стоит отметить, что другие разработчики также могут использовать эту технику, так что это не гарантирует, что ваши Window
будут всегда остаются на вершине, но это работает для меня, и ситуация все еще определенно улучшается используя его.