FocusManager クラス

定義

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

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

注釈

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

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

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

フォーカス スコープは、スコープ内の FocusManager.FocusedElement を追跡するコンテナー要素です。 既定では、 Window クラスは、 MenuContextMenu、および ToolBar クラスと同様にフォーカス スコープです。 フォーカス スコープである要素は、trueに設定IsFocusScope

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

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

WindowMenuToolBar、およびContextMenuIsFocusScopeの既定値は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

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

適用対象