如何从既不属于窗口也不属于用户控件的代码中获取 WPF 中当前聚焦的元素/控件?
问问题
58843 次
1 回答
138
这取决于您所追求的焦点类型,Logical
或者Keyboard
。
- 键盘焦点是指当前接收键盘输入的元素。整个桌面中只有一个元素可以拥有键盘焦点。
- 逻辑焦点是指焦点范围中的元素,如果焦点范围处于活动状态,它将接收键盘输入。
通常,逻辑焦点是最后在该焦点范围上接收键盘焦点的元素。焦点范围可能是应用程序、表单、顶级窗口、选项卡等。换句话说,逻辑焦点是窗体或窗口如何记住哪个控件最后获得键盘焦点的方式。
FocusManager
获取指定焦点范围内具有逻辑焦点的元素,在本例中为 Window ( this
):
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
Keyboard
将返回具有当前键盘输入焦点的元素:
IInputElement focusedControl = Keyboard.FocusedElement;
于 2013-10-15T22:50:42.157 回答