FocusManager 类

定义

提供一组静态方法、附加属性和事件,用于确定和设置焦点范围以及设置该范围内具有焦点的元素。

public ref class FocusManager abstract sealed
public static class FocusManager
type FocusManager = class
Public Class FocusManager
继承
FocusManager

注解

在Windows Presentation Foundation (WPF) 有两个有关焦点的概念:键盘焦点和逻辑焦点。

键盘焦点与当前接收键盘输入的元素相关。 只能有一个具有键盘焦点的元素。 此具有键盘焦点的元素已 IsKeyboardFocused 设置为 trueKeyboard.FocusedElement 返回具有键盘焦点的 元素。

逻辑焦点与 FocusManager.FocusedElement 特定焦点范围内的 相关。

焦点范围是一个容器元素,用于跟踪其范围内的 FocusManager.FocusedElement。 默认情况下,Window类与 、 ContextMenuToolBar 类一样Menu是焦点范围。 作为焦点范围的元素已 IsFocusScope 设置为 true

可以有多个具有逻辑焦点的元素,但在单个焦点范围内只能有一个具有逻辑焦点的元素。 具有逻辑焦点的元素不一定具有键盘焦点,但具有键盘焦点的元素将具有逻辑焦点。 可以在焦点范围内定义焦点范围。 在这种情况下,父焦点范围和子焦点范围都可以具有 FocusManager.FocusedElement

以下方案演示了键盘焦点和逻辑焦点在具有 Window 的 WPF 应用程序中如何更改,而 WPF 应用程序中具有 , TextBox 并且 Menu 具有 MenuItem。 当键盘焦点从 TextBoxMenuItem更改为 时,会 TextBox 失去键盘焦点,但保留焦点范围的逻辑焦点 Window 。 获取 MenuItem 键盘焦点,并获取焦点范围的逻辑 Menu 焦点。 当键盘焦点返回到根 Window时,具有逻辑焦点的焦点范围中的 Window 元素将获得键盘焦点,在本例中为 TextBoxTextBox现在具有键盘焦点和逻辑焦点。 失去 MenuItem 键盘焦点,但保留焦点范围的逻辑焦点 Menu

MenuToolBarContextMenu 上的Window默认值IsFocusScopetrue

有关焦点的详细信息,请参阅 输入概述焦点概述

字段

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

当元素丢失焦点时发生。

适用于