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 значение true.

GetIsFocusScope(DependencyObject)

Определяет, является ли указанный DependencyObject областью фокуса.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Удаляет обработчик для присоединенного GotFocus события.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Удаляет обработчик для присоединенного LostFocus события.

SetFocusedElement(DependencyObject, IInputElement)

Задает логический фокус на указанном элементе.

SetIsFocusScope(DependencyObject, Boolean)

Задает заданную DependencyObject область фокуса.

Присоединенные события

Имя Описание
GotFocus

Происходит, когда элемент получает фокус.

LostFocus

Происходит, когда элемент теряет фокус.

Применяется к