FocusManager クラス

定義

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

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

注釈

Windows Presentation Foundation (WPF) には、キーボード フォーカスと論理フォーカスという 2 つの概念があります。

キーボード フォーカスは、現在キーボード入力を受信している要素に関連します。 キーボード フォーカスを持つ要素は 1 つだけ存在できます。 キーボード フォーカスを持つこの要素は、IsKeyboardFocused true Keyboard.FocusedElement は、キーボード フォーカスを持つ要素を返します。

論理フォーカスは、特定の FocusManager.FocusedElement フォーカス スコープ内に関連します。

フォーカス範囲とは、その範囲内の FocusManager.FocusedElement を追跡するコンテナー要素です。 既定では、Windowクラスはフォーカス スコープであり、ToolBarクラスContextMenuと同様ですMenu。 フォーカス スコープである要素が にtrue設定されていますIsFocusScope

論理フォーカスを持つ要素は複数存在できますが、1 つのフォーカス スコープ内に論理フォーカスを持つ要素は 1 つだけ存在できます。 論理フォーカスを持つ要素は必ずしもキーボード フォーカスを持つわけではありませんが、キーボード フォーカスを持つ要素には論理フォーカスがあります。 フォーカス スコープ内でフォーカス スコープを定義できます。 この場合、親フォーカス スコープと子フォーカス スコープ FocusManager.FocusedElementの両方に .

次のシナリオでは、キーボード フォーカスと論理フォーカスを持つ Window TextBox WPF アプリケーションで変化する方法を示していますMenuMenuItem。 キーボードフォーカスが切りTextBoxMenuItem替わると、キーボードフォーカスはTextBox失いますが、フォーカススコープの論理フォーカスはWindow保持されます。 キーボード MenuItem フォーカスを取得し、フォーカス スコープの論理フォーカスを Menu 取得します。 キーボード フォーカスがルート Windowに戻ると、論理フォーカスを持つフォーカス スコープ内の Window 要素がキーボード フォーカスを TextBox取得します。この場合は . TextBoxキーボード フォーカスと論理フォーカスが表示されるようになりました。 キーボード フォーカスは MenuItem 失われますが、フォーカス スコープの論理フォーカスは Menu 保持されます。

の既定値IsFocusScope ToolBarContextMenu WindowMenuです。true

フォーカスの詳細については、「 入力の概要 」と「フォーカスの概要」を 参照してください。

フィールド

FocusedElementProperty

FocusedElement 添付プロパティを識別します。

GotFocusEvent

GotFocus 添付イベントを識別します。

IsFocusScopeProperty

IsFocusScope 添付プロパティを識別します。

LostFocusEvent

LostFocus 添付イベントを識別します。

添付プロパティ

FocusedElement

このプロパティが添付される要素に論理フォーカスがあるかどうかを判断します。

IsFocusScope

このプロパティが添付される要素がフォーカス範囲であるかどうかを判断します。

メソッド

AddGotFocusHandler(DependencyObject, RoutedEventHandler)

GotFocus 添付イベントのハンドラーを追加します。

AddLostFocusHandler(DependencyObject, RoutedEventHandler)

LostFocus 添付イベントのハンドラーを追加します。

GetFocusedElement(DependencyObject)

指定したフォーカス範囲内で論理フォーカスを持つ要素を取得します。

GetFocusScope(DependencyObject)

true に設定された IsFocusScope を持ち、指定した要素に最も近い先祖を決定します。

GetIsFocusScope(DependencyObject)

指定した DependencyObject がフォーカス範囲であるかどうかを確認します。

RemoveGotFocusHandler(DependencyObject, RoutedEventHandler)

GotFocus 添付イベントのハンドラーを削除します。

RemoveLostFocusHandler(DependencyObject, RoutedEventHandler)

LostFocus 添付イベントのハンドラーを削除します。

SetFocusedElement(DependencyObject, IInputElement)

指定した要素に論理フォーカスを設定します。

SetIsFocusScope(DependencyObject, Boolean)

指定した DependencyObject をフォーカス範囲として設定します。

添付イベント

GotFocus

要素がフォーカスを取得すると発生します。

LostFocus

要素がフォーカスを失ったときに発生します。

適用対象