Поделиться через


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

GetIsFocusScope(DependencyObject)

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

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

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

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

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

SetFocusedElement(DependencyObject, IInputElement)

Устанавливает логический фокус на указанный элемент.

SetIsFocusScope(DependencyObject, Boolean)

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

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

GotFocus

Возникает, когда элемент получает фокус.

LostFocus

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

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