Нестабильный фокус приложений WPF

Если у меня проблемы с WPF, то это всегда касается Focus-Management. Бывают случаи, когда мое приложение теряет полную фокусировку, поэтому другое приложение получает фокус, а мое приложение уходит в фоновый режим. Это происходит в основном, если некоторые окна в моем приложении будут закрыты. Это известная проблема WPF. У кого-то еще есть подобные проблемы?

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

ОБНОВИТЬ

Кажется, я нашел простой взлом, который помогает предотвратить поведение, которое я описываю в другой теме. Если у вас возникла такая же проблема, попробуйте, если она вам поможет. Если у вас есть объяснение, есть щедрость, открытая для...

Я оставляю этот пост открытым в течение нескольких дней, может быть, у кого-то есть хороший общий вклад в проблематику WPF-фокуса. Возможно, я не понимаю логику, стоящую за этим, но пока я не пойму, это IMO действительно худшая часть WPF (что IMO действительно фантастический продукт). Если мне придется рассказать кому-то о том, с какими проблемами у меня были последние годы в рамках WPF, это будет: Focusmgmt, Focusmgmt и еще раз Focusmgmt.

2 ответа

Решение

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

Чтобы потерять фокус внутри приложения, обычно это происходит, когда какой-то элемент управления, о котором вы не подумали, получает, но ничего не показывает (например, какой-то случайный StackPanel или Grid, используемый для разметки), вы должны найти его и добавить Focusable="false"

+1 Так же я сталкивался с похожими проблемами в своем приложении. Я работаю над VS-подобным приложением (пользователь может добавлять (из панели инструментов) и настраивать элементы управления в Canvas), и фокус таинственным образом теряется после выполнения различных комнад, таких как Delete и т. Д. Я должен использовать Canvas.Focus() явно сбросить фокус, и это тоже иногда не работает.

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