WPF: LostFocus как в старых WinForms

После длительного исследования я не понимаю, как я могу реализовать простой Lostfocus, как мы это делаем в Winforms. В Windows Form Control у нас обычно есть LostFocus, который я использую, когда кто-то нажимает TAB для потери фокуса или использует мышь для выбора других элементов управления. Но в случае с WPF это не так. Сначала я использую LostFocus, но когда я нажимаю вкладку, событие не запускается. однако, когда я щелкаю мышью по другому элементу управления, он запускается должным образом. Итак, это не решает мою проблему.

Во-вторых, я пытаюсь использовать LostKeyboardFocus, он запускается при использовании клавиши TAB и в некоторых случаях, когда я использую мышь для выбора другого элемента, но не когда я выбираю пункт меню из меню родительского окна.

Кроме того, у меня есть контроль над пользовательским элементом управления, который я помещаю в элемент управления TAB в родительском окне. Но когда я нажимаю клавишу TAb, он всегда выбирает меню родительского окна вместо TreeView, которое есть в UserControl.

Любое предложение - отличный помощник. Спасибо.


person Sumit Gupta    schedule 29.05.2013    source источник
comment
Пожалуйста, не задавайте два не связанных между собой вопроса в одном и том же вопросе.   -  person Daniel Hilgarth    schedule 29.05.2013
comment
Связано: http://stackoverflow.com/questions/5850784/how-do-you-solve-this-lostfocus-lostkeyboardfocus-issue - прочтите, чтобы понять, почему фокус - это не простая концепция.   -  person Daniel Hilgarth    schedule 29.05.2013
comment
Не уверен, почему кто-то поставил отрицательный вопрос. Я просто прошу логического объяснения поведения по мере того, как я замечаю свой код, и каков наилучший обходной путь или решение. Извините, если я не понимаю.   -  person Sumit Gupta    schedule 29.05.2013
comment
@Daneil, извините за второй вопрос, но я не считаю это несвязанным. В любом случае, вопрос, который вы упомянули, касается конкретного случая, когда у парня есть isEdit. Для меня это не имеет смысла. Что безоговорочно и просто. Надеюсь, я понимаю.   -  person Sumit Gupta    schedule 29.05.2013
comment
Основные концепции логического фокуса и фокусировки клавиатуры совпадают. Я не говорю, что ваш вопрос повторяется, но вы можете извлечь пользу из понимания задействованных концепций.   -  person Daniel Hilgarth    schedule 29.05.2013


Ответы (1)


Что ж, мои поиски логических рассуждений все еще не удовлетворены, но я просто делаю простую вещь. @ Дэниел, как я уже сказал, я думаю, что эти два вопроса связаны, ну, ответ действительно связан. Может быть, вы сможете объяснить мои выводы, которые я помещаю здесь в качестве ответа.

Я просто устанавливаю свойство TabIndex моего текстового поля и другого элемента управления [TreeView] как 1 и 2, теперь, когда я нажимаю TAB или выбираю элемент TreeView с помощью мыши, у меня запускается Lostfocus. и поскольку у меня есть указатель вкладок, установленный в элементе управления, он не выбирает элемент меню родительского элемента [он выбирает его как последний сейчас]. Так что сделайте Lostfocus той функцией, которую я должен использовать для своих целей.

Любого, у кого есть объяснение или лучшее решение, по-прежнему просят поделиться им. Спасибо.

person Sumit Gupta    schedule 29.05.2013