FocusManager FocusManager FocusManager FocusManager Class

Определение

Предоставляет набор статических методов, вложенных свойств зависимостей и событий для определения и установки областей фокуса и для установки имеющих фокус элементов в данной области.Provides a set of static methods, attached properties, and events for determining and setting focus scopes and for setting the focused element within the scope.

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
Наследование
FocusManagerFocusManagerFocusManagerFocusManager

Комментарии

В Windows Presentation Foundation (WPF), существует два понятия, имеющие отношение к фокусу: фокус клавиатуры и логический фокус.In Windows Presentation Foundation (WPF) there are two concepts concerning focus: keyboard focus and logical focus.

Фокус клавиатуры относится к элементу, который в данный момент получающему ввод с клавиатуры.Keyboard focus pertains to the element which is currently receiving keyboard input. Может существовать только один элемент с фокусом клавиатуры.There can be only one element with keyboard focus. Этот элемент с фокусом клавиатуры имеет IsKeyboardFocused присвоено true.This element with keyboard focus has IsKeyboardFocused set to true. Keyboard.FocusedElement Возвращает элемент с фокусом клавиатуры.Keyboard.FocusedElement returns the element with keyboard focus.

Логический фокус относится к FocusManager.FocusedElement в пределах области особое внимание.Logical focus pertains to the FocusManager.FocusedElement within a specific focus scope.

Область фокуса — это элемент контейнера, который отслеживает FocusManager.FocusedElement внутри своей области.A focus scope is a container element that keeps track of the FocusManager.FocusedElement within its scope. По умолчанию Window класс является областью фокуса, так как Menu, ContextMenu, и ToolBar классы.By default, the Window class is a focus scope as are the Menu, ContextMenu, and ToolBar classes. Элемент, который является областью фокуса имеет IsFocusScope присвоено true.An element which is a focus scope has IsFocusScope set to true.

Может существовать несколько элементов с логическим фокусом, но может существовать только один элемент с логическим фокусом в пределах одной области фокуса.There can be multiple elements with logical focus, but there can only be one element with logical focus within a single focus scope. Элемент с логическим фокусом не обязательно иметь фокус клавиатуры, но элемент с фокусом клавиатуры будет иметь логический фокус.An element with logical focus does not necessarily have keyboard focus, but an element with keyboard focus will have logical focus. Это можно определить область фокуса в пределах области фокуса.It is possible to define a focus scope within a focus scope. В этом случае область фокуса родительской и дочерней области фокуса может быть FocusManager.FocusedElement.In this case, both the parent focus scope and the child focus scope can have a FocusManager.FocusedElement.

Приведенный ниже сценарий иллюстрирует, как изменить фокус клавиатуры и логический фокус в приложении WPF с Window с TextBox и Menu с MenuItem.The following scenario illustrates how keyboard focus and logical focus change in a WPF application that has a Window with a TextBox and a Menu which has a MenuItem. Изменения фокуса клавиатуры с TextBox для MenuItem, TextBox потери фокуса клавиатуры, но оставляет логический фокус для Window сосредоточиться области.When keyboard focus changes from the TextBox to the MenuItem, the TextBox losses keyboard focus but retains logical focus for the Window focus scope. MenuItem Получает фокус клавиатуры и получает логический фокус для Menu сосредоточиться области.The MenuItem obtains keyboard focus and obtains logical focus for the Menu focus scope. При возвращении фокуса клавиатуры в корне Window, на элемент в Window области фокуса с логическим фокусом получит фокус клавиатуры, который в данном случае является TextBox.When keyboard focus returns to the root Window, the element in Window focus scope with logical focus will obtain keyboard focus, which in this case is the TextBox. TextBox Теперь имеет фокус клавиатуры и логический фокус.The TextBox now has keyboard focus and logical focus. MenuItem Теряет фокус клавиатуры, но сохраняет логический фокус для Menu сосредоточиться области.The MenuItem loses keyboard focus, but retains logical focus for the Menu focus scope.

Значение по умолчанию IsFocusScope на Window, Menu, ToolBar, и ContextMenu является true.The default value of IsFocusScope on a Window, Menu, ToolBar, and ContextMenu is true.

Дополнительные сведения о фокусе см. в разделе Общие сведения о входных данных и Общие сведения о фокусе.For more information on focus, see the Input Overview and the Focus Overview.

Поля

FocusedElementProperty FocusedElementProperty FocusedElementProperty FocusedElementProperty

Идентифицирует присоединенное свойство FocusedElement.Identifies the FocusedElement attached property.

GotFocusEvent GotFocusEvent GotFocusEvent GotFocusEvent

Идентифицирует присоединенное событие GotFocus.Identifies the GotFocus attached event.

IsFocusScopeProperty IsFocusScopeProperty IsFocusScopeProperty IsFocusScopeProperty

Идентифицирует присоединенное свойство IsFocusScope.Identifies the IsFocusScope attached property.

LostFocusEvent LostFocusEvent LostFocusEvent LostFocusEvent

Идентифицирует присоединенное событие LostFocus.Identifies the LostFocus attached event.

Присоединенные свойства

FocusedElement FocusedElement FocusedElement FocusedElement

Определяет, имеет ли логический фокус тот элемент, в который вложено это свойство.Determines whether the element this property is attached to has logical focus.

IsFocusScope IsFocusScope IsFocusScope IsFocusScope

Определяет, является ли областью фокуса тот элемент, к которому присоединено это свойство.Determines whether the element this property is attached to is a focus scope.

Методы

AddGotFocusHandler(DependencyObject, RoutedEventHandler) AddGotFocusHandler(DependencyObject, RoutedEventHandler) AddGotFocusHandler(DependencyObject, RoutedEventHandler) AddGotFocusHandler(DependencyObject, RoutedEventHandler)

Добавляет обработчик для вложенного события GotFocus.Adds a handler for the GotFocus attached event.

AddLostFocusHandler(DependencyObject, RoutedEventHandler) AddLostFocusHandler(DependencyObject, RoutedEventHandler) AddLostFocusHandler(DependencyObject, RoutedEventHandler) AddLostFocusHandler(DependencyObject, RoutedEventHandler)

Добавляет обработчик для вложенного события LostFocus.Adds a handler for the LostFocus attached event.

GetFocusedElement(DependencyObject) GetFocusedElement(DependencyObject) GetFocusedElement(DependencyObject) GetFocusedElement(DependencyObject)

Получает элемент с логическим фокусом в заданной области фокуса.Gets the element with logical focus within the specified focus scope.

GetFocusScope(DependencyObject) GetFocusScope(DependencyObject) GetFocusScope(DependencyObject) GetFocusScope(DependencyObject)

Определяет ближайший наследник заданного элемента, у которого IsFocusScope имеет значение true.Determines the closest ancestor of the specified element that has IsFocusScope set to true.

GetIsFocusScope(DependencyObject) GetIsFocusScope(DependencyObject) GetIsFocusScope(DependencyObject) GetIsFocusScope(DependencyObject)

Определяет, является ли заданный DependencyObject областью фокуса.Determines whether the specified DependencyObject is a focus scope.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

Удаляет обработчик для вложенного события GotFocus.Removes a handler for the GotFocus attached event.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

Удаляет обработчик для вложенного события LostFocus.Removes a handler for the LostFocus attached event.

SetFocusedElement(DependencyObject, IInputElement) SetFocusedElement(DependencyObject, IInputElement) SetFocusedElement(DependencyObject, IInputElement) SetFocusedElement(DependencyObject, IInputElement)

Устанавливает логический фокус на указанный элемент.Sets logical focus on the specified element.

SetIsFocusScope(DependencyObject, Boolean) SetIsFocusScope(DependencyObject, Boolean) SetIsFocusScope(DependencyObject, Boolean) SetIsFocusScope(DependencyObject, Boolean)

Задает заданный DependencyObject как область фокуса.Sets the specified DependencyObject as a focus scope.

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

GotFocus GotFocus GotFocus GotFocus

Возникает, когда элемент получает фокус.Occurs when an element gets focus.

LostFocus LostFocus LostFocus LostFocus

Возникает, когда элемент теряет фокус.Occurs when an element loses focus.

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