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 クラスは、および クラスとToolBar同様にMenuContextMenuフォーカス スコープです。 フォーカス スコープである 要素が にtrue設定されていますIsFocusScope

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

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

MenuToolBarおよび ContextMenuWindow既定値IsFocusScopeは です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

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

適用対象