FocusManager クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
フォーカス範囲を決定し設定するため、およびその範囲内でフォーカスされた要素を設定するための静的メソッド、添付プロパティ、およびイベントを提供します。
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) |
|
GetIsFocusScope(DependencyObject) |
指定した DependencyObject がフォーカス範囲であるかどうかを確認します。 |
RemoveGotFocusHandler(DependencyObject, RoutedEventHandler) |
GotFocus 添付イベントのハンドラーを削除します。 |
RemoveLostFocusHandler(DependencyObject, RoutedEventHandler) |
LostFocus 添付イベントのハンドラーを削除します。 |
SetFocusedElement(DependencyObject, IInputElement) |
指定した要素に論理フォーカスを設定します。 |
SetIsFocusScope(DependencyObject, Boolean) |
指定した DependencyObject をフォーカス範囲として設定します。 |
添付イベント
GotFocus |
要素がフォーカスを取得すると発生します。 |
LostFocus |
要素がフォーカスを失ったときに発生します。 |