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 класс является областью фокуса, как MenuContextMenuи классы, и ToolBar классы. Элемент, представляющий область фокуса, имеет IsFocusScope значение true.
Может быть несколько элементов с логическим фокусом, но в пределах одной области фокуса может быть только один элемент с логическим фокусом. Элемент с логическим фокусом не обязательно имеет фокус клавиатуры, но элемент с фокусом клавиатуры будет иметь логический фокус. Можно определить область фокуса в области фокуса. В этом случае у родительской области фокуса и дочерней области фокуса может быть FocusManager.FocusedElement.
В следующем сценарии показано изменение фокуса клавиатуры и логического фокуса в приложении WPF, в котором есть a Window и a MenuMenuItem.TextBox При изменении фокуса клавиатуры на TextBoxMenuItemTextBox область фокуса происходит потеря фокуса клавиатуры, но сохраняется логический фокус для области фокуса.Window Получает MenuItem фокус клавиатуры и получает логический фокус для области фокуса Menu . Когда фокус клавиатуры возвращается в корень Window, элемент в Window области фокуса с логическим фокусом получит фокус клавиатуры, который в данном случае является TextBox. Теперь фокус клавиатуры и логический TextBox фокус. Фокус MenuItem клавиатуры теряется, но сохраняет логический фокус для области фокуса Menu .
Значение по умолчанию для IsFocusScopeWindowобъекта , MenuToolBarи 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 |
Происходит, когда элемент теряет фокус. |