ウィンドウでもユーザーコントロールでもないコードから、WPF で現在フォーカスされている要素/コントロールを取得するにはどうすればよいですか?
質問する
58843 次
1 に答える
138
それは、あなたが求めているフォーカスのタイプ、Logical
またはKeyboard
.
- キーボード フォーカスは、現在キーボード入力を受け取る要素を参照します。デスクトップ全体で 1 つの要素だけがキーボード フォーカスを持つことができます。
- 論理フォーカスとは、フォーカス スコープがアクティブな場合にキーボード入力を受け取るフォーカススコープ内の要素を指します。
通常、論理フォーカスは、そのフォーカス スコープでキーボード フォーカスを最後に受け取った要素です。フォーカス スコープは、アプリ、フォーム、トップ レベル ウィンドウ、タブなどです。つまり、論理フォーカスとは、どのコントロールが最後にキーボード フォーカスを持っていたかをフォームまたはウィンドウが記憶する方法です。
FocusManager
指定されたフォーカス スコープ内の論理フォーカスを持つ要素を取得します。この場合は Window ( this
):
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
Keyboard
現在のキーボード入力フォーカスを持つ要素を返します。
IInputElement focusedControl = Keyboard.FocusedElement;
于 2013-10-15T22:50:42.157 に答える