FocusManager クラス

定義

フォーカス範囲を決定し設定するため、およびその範囲内でフォーカスされた要素を設定するための静的メソッド、添付プロパティ、およびイベントを提供します。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
継承
FocusManager

注釈

Windows Presentation Foundation (WPF) には、フォーカスに関して、キーボードフォーカスと論理フォーカスという2つの概念があります。In Windows Presentation Foundation (WPF) there are two concepts concerning focus: keyboard focus and logical focus.

キーボードフォーカスは、現在キーボード入力を受け取っている要素に関連します。Keyboard focus pertains to the element that is currently receiving keyboard input. キーボードフォーカスを持つ要素は1つだけ存在できます。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 that is a focus scope has IsFocusScope set to true.

論理フォーカスを持つ複数の要素が存在する場合がありますが、1つのフォーカススコープ内に論理フォーカスがある要素は1つだけ存在できます。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 that 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. キーボードフォーカスがルートに戻ると WindowWindow 論理フォーカスを持つフォーカススコープ内の要素はキーボードフォーカスを取得します。この例では、 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 ContextMenutrue です。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

FocusedElement 添付プロパティを識別します。Identifies the FocusedElement attached property.

GotFocusEvent

GotFocus 添付イベントを識別します。Identifies the GotFocus attached event.

IsFocusScopeProperty

IsFocusScope 添付プロパティを識別します。Identifies the IsFocusScope attached property.

LostFocusEvent

LostFocus 添付イベントを識別します。Identifies the LostFocus attached event.

添付プロパティ

FocusedElement

このプロパティが添付される要素に論理フォーカスがあるかどうかを判断します。Determines whether the element this property is attached to has logical focus.

IsFocusScope

このプロパティが添付される要素がフォーカス範囲であるかどうかを判断します。Determines whether the element this property is attached to is a focus scope.

メソッド

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

GotFocus 添付イベントのハンドラーを追加します。Adds a handler for the GotFocus attached event.

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

LostFocus 添付イベントのハンドラーを追加します。Adds a handler for the LostFocus attached event.

GetFocusedElement(DependencyObject)

指定したフォーカス範囲内で論理フォーカスを持つ要素を取得します。Gets the element with logical focus within the specified focus scope.

GetFocusScope(DependencyObject)

true に設定された IsFocusScope を持ち、指定した要素に最も近い先祖を決定します。Determines the closest ancestor of the specified element that has IsFocusScope set to true.

GetIsFocusScope(DependencyObject)

指定した DependencyObject がフォーカス範囲であるかどうかを確認します。Determines whether the specified DependencyObject is a focus scope.

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

GotFocus 添付イベントのハンドラーを削除します。Removes a handler for the GotFocus attached event.

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

LostFocus 添付イベントのハンドラーを削除します。Removes a handler for the LostFocus attached event.

SetFocusedElement(DependencyObject, IInputElement)

指定した要素に論理フォーカスを設定します。Sets logical focus on the specified element.

SetIsFocusScope(DependencyObject, Boolean)

指定した DependencyObject をフォーカス範囲として設定します。Sets the specified DependencyObject as a focus scope.

添付イベント

GotFocus

要素がフォーカスを取得すると発生します。Occurs when an element gets focus.

LostFocus

要素がフォーカスを失ったときに発生します。Occurs when an element loses focus.

適用対象