Нестабильный фокус приложений WPF - PullRequest
2 голосов
/ 13 июля 2010

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

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

ОБНОВЛЕНИЕ

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

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

Ответы [ 2 ]

2 голосов
/ 13 июля 2010

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

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

1 голос
/ 13 июля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...