В чем разница между фокусом клавиатуры и логическим фокусом в WPF? и чем фокус WPF отличается от фокуса в winform?
2 ответа
См. Обзор фокуса
Фокус клавиатуры относится к элементу, который в настоящее время получает ввод с клавиатуры. На всем рабочем столе может быть только один элемент с фокусом клавиатуры. В WPF для элемента с фокусом клавиатуры IsKeyboardFocused будет установлено значение true. Статическое свойство FocusedElement в классе Keyboard получает элемент, который в настоящее время имеет фокус клавиатуры.
Логический фокус относится к FocusManager.FocusedElement в области фокуса. Область фокуса - это элемент, который отслеживает FocusedElement в своей области. Когда фокус клавиатуры покидает область фокуса, элемент с фокусом теряет фокус клавиатуры, но сохраняет логический фокус. Когда фокус клавиатуры возвращается в область фокуса, элемент с фокусом получит фокус клавиатуры. Это позволяет переключать фокус клавиатуры между несколькими областями фокуса, но гарантирует, что элемент с фокусом в области фокуса восстанавливает фокус клавиатуры, когда фокус возвращается в область фокуса.
Я нашел хорошую серию сообщений в блоге о фокусе WPF.
Все они удобны для чтения, но первая часть специально посвящена логическому и клавиатурному фокусу. Третья часть показывает хороший способ установить фокус на элемент пользовательского интерфейса в UserControl.
Похожие вопросы
Связанные вопросы
Новые вопросы
.net
НЕ используйте для вопросов о .NET Core - используйте вместо этого [.net-core]. .NET Framework - это программная среда, предназначенная главным образом для операционной системы Microsoft Windows. Он включает в себя реализацию библиотеки базовых классов, общеязыковой среды выполнения (обычно называемой CLR), общей системы типов (обычно называемой CTS) и динамической среды исполнения. Он поддерживает множество языков программирования, включая C #, VB.NET, F # и C ++ / CLI.