如何从既不是窗口也不是用户控件的代码中获取WPF中当前关注的元素/控件?
答案 0 :(得分:99)
这取决于您所关注的焦点类型,Logical
或Keyboard
。
通常,逻辑焦点是最后在该焦点范围内接收键盘焦点的元素。焦点范围可以是应用程序,表单,顶级窗口,选项卡等。换句话说,逻辑焦点是表单或窗口如何记住最后具有键盘焦点的控件。
FocusManager
获取具有逻辑焦点的元素在指定的焦点范围内,在本例中为Window(this
):
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
Keyboard
将返回具有当前键盘输入焦点的元素:
IInputElement focusedControl = Keyboard.FocusedElement;