如何从既不属于窗口也不属于用户控件的代码中获取 WPF 中当前聚焦的元素/控件?
最佳答案
这取决于您所追求的焦点类型:逻辑
或键盘
。
- 键盘焦点指的是当前接收键盘输入的元素。整个桌面中只有一个元素可以具有键盘焦点。
- 逻辑焦点是指焦点范围中将接收键盘输入的元素,如果焦点范围处于事件状态。
通常,逻辑焦点是在该焦点范围内最后接收键盘焦点的元素。焦点范围可能是应用程序、表单、顶级窗口、选项卡等。换句话说,逻辑焦点是窗体或窗口如何记住哪个控件最后拥有键盘焦点。
FocusManager
获取指定焦点范围内具有逻辑焦点的元素,在本例中为 Window (this
):
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
Keyboard
将返回具有当前键盘输入焦点的元素:
IInputElement focusedControl = Keyboard.FocusedElement;
关于.net - 获取 WPF 窗口中当前聚焦的元素/控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19392036/