FocusManager Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет набор статических методов, вложенных свойств зависимостей и событий для определения и установки областей фокуса и для установки имеющих фокус элементов в данной области.
public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
- Наследование
-
FocusManager
Комментарии
В Windows Presentation Foundation (WPF) есть два понятия, касающиеся фокуса: фокус клавиатуры и логический фокус.
Фокус клавиатуры относится к элементу, который в настоящее время получает ввод с клавиатуры. С фокусом клавиатуры может быть только один элемент. Этот элемент с фокусом клавиатуры имеет IsKeyboardFocused значение true
.
Keyboard.FocusedElement возвращает элемент с фокусом клавиатуры.
Логический фокус относится к объекту в FocusManager.FocusedElement пределах определенного область фокуса.
Область фокуса представляет собой элемент контейнера, который отслеживает FocusManager.FocusedElement в своей области. По умолчанию класс является область фокуса, Window как и классы Menu, ContextMenuи ToolBar . Элемент, который является фокусом, область имеет IsFocusScope значение true
.
Может быть несколько элементов с логическим фокусом, но может быть только один элемент с логическим фокусом в пределах одного фокуса область. Элемент с логическим фокусом не обязательно имеет фокус клавиатуры, но элемент с фокусом клавиатуры будет иметь логический фокус. Можно определить область фокуса в область фокуса. В этом случае родительский фокус область и дочерний фокус область могут иметь FocusManager.FocusedElement.
В следующем сценарии показано изменение фокуса клавиатуры и логического фокуса в приложении WPF с Window и с MenuMenuItem.TextBox При смене TextBoxMenuItemфокуса клавиатуры с на , он потеряет фокус клавиатуры, TextBox но сохраняет логический фокус для фокуса Window область. получает MenuItem фокус клавиатуры и логический фокус для Menu область фокуса. Когда фокус клавиатуры вернется в корень Window, элемент в Window фокусе область с логическим фокусом получит фокус клавиатуры, который в данном случае является TextBox. Теперь имеет фокус клавиатуры и логический TextBox фокус. Объект MenuItem теряет фокус клавиатуры, но сохраняет логический Menu фокус для область фокуса.
Значение по умолчанию IsFocusScope для Window, Menu, ToolBarи ContextMenu равно true
.
Дополнительные сведения о фокусе см. в разделах Общие сведения о входных данных и Обзор фокусировки.
Поля
FocusedElementProperty |
Идентифицирует присоединенное свойство FocusedElement. |
GotFocusEvent |
Идентифицирует присоединенное событие GotFocus. |
IsFocusScopeProperty |
Идентифицирует присоединенное свойство IsFocusScope. |
LostFocusEvent |
Идентифицирует присоединенное событие LostFocus. |
Присоединенные свойства
FocusedElement |
Определяет, имеет ли логический фокус тот элемент, в который вложено это свойство. |
IsFocusScope |
Определяет, является ли областью фокуса тот элемент, к которому присоединено это свойство. |
Методы
AddGotFocusHandler(DependencyObject, RoutedEventHandler) |
Добавляет обработчик для вложенного события GotFocus. |
AddLostFocusHandler(DependencyObject, RoutedEventHandler) |
Добавляет обработчик для вложенного события LostFocus. |
GetFocusedElement(DependencyObject) |
Получает элемент с логическим фокусом в заданной области фокуса. |
GetFocusScope(DependencyObject) |
Определяет ближайший наследник заданного элемента, у которого IsFocusScope имеет значение |
GetIsFocusScope(DependencyObject) |
Определяет, является ли заданный DependencyObject областью фокуса. |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
Удаляет обработчик для вложенного события GotFocus. |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
Удаляет обработчик для вложенного события LostFocus. |
SetFocusedElement(DependencyObject, IInputElement) |
Устанавливает логический фокус на указанный элемент. |
SetIsFocusScope(DependencyObject, Boolean) |
Задает заданный DependencyObject как область фокуса. |
Присоединенные события
GotFocus |
Возникает, когда элемент получает фокус. |
LostFocus |
Возникает, когда элемент теряет фокус. |