在WPF窗口中获取当前的焦点元素/控件
我如何从代码中获取WPF中的当前焦点元素/控件,这些代码既不是窗口也不是用户控件的一部分?
这取决于你所关注的焦点types, Logical
或Keyboard
。
键盘焦点是指接收键盘input的元素, 逻辑焦点是指焦点范围内的焦点范围内的元素。
FocusManager
在指定的焦点范围内获取具有逻辑焦点的元素,在这种情况下是Window( this
):
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
Keyboard
将返回当前键盘input焦点的元素:
IInputElement focusedControl = Keyboard.FocusedElement;