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 つだけ存在できます。 キーボード フォーカスを持つこの要素は、 にtrue
設定されていますIsKeyboardFocused。
Keyboard.FocusedElement は、キーボード フォーカスを持つ 要素を返します。
論理フォーカスは、特定のフォーカス スコープ内の に FocusManager.FocusedElement 関連します。
フォーカス範囲とは、その範囲内の FocusManager.FocusedElement を追跡するコンテナー要素です。 既定では、 Window クラスは、および クラスとToolBar同様にMenuContextMenuフォーカス スコープです。 フォーカス スコープである 要素が にtrue
設定されていますIsFocusScope。
論理フォーカスを持つ複数の要素を含めることができますが、1 つのフォーカススコープ内に論理フォーカスを持つ要素は 1 つだけ存在できます。 論理フォーカスを持つ要素は必ずしもキーボード フォーカスを持つわけではありませんが、キーボード フォーカスを持つ要素は論理フォーカスを持つことになります。 フォーカス スコープ内でフォーカス スコープを定義できます。 この場合、親フォーカス スコープと子フォーカス スコープの両方に を FocusManager.FocusedElement指定できます。
次のシナリオは、 と を持つ と を持つ WindowTextBox WPF アプリケーションでキーボード フォーカスとMenuMenuItem論理フォーカスがどのように変化するかを示しています。 キーボードフォーカスが から TextBox に MenuItem変わると、 TextBox キーボードフォーカスは失われますが、フォーカススコープの論理フォーカスは Window 保持されます。 は MenuItem キーボード フォーカスを取得し、フォーカス スコープの論理フォーカスを Menu 取得します。 キーボード フォーカスがルート Windowに戻ると、論理フォーカスを持つフォーカス スコープ内の Window 要素はキーボード フォーカスを取得します。この場合は です TextBox。 には TextBox 、キーボード フォーカスと論理フォーカスが含まれるようになりました。 では MenuItem キーボード フォーカスは失われますが、フォーカス スコープの論理フォーカスは Menu 保持されます。
、MenuToolBarおよび ContextMenu のWindow既定値IsFocusScopeは です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 |
要素がフォーカスを失ったときに発生します。 |
適用対象
.NET