【发布时间】:2013-10-15 22:15:18
【问题描述】:
如何从既不属于窗口也不属于用户控件的代码中获取 WPF 中当前聚焦的元素/控件?
【问题讨论】:
如何从既不属于窗口也不属于用户控件的代码中获取 WPF 中当前聚焦的元素/控件?
【问题讨论】:
这取决于您关注的焦点类型,Logical 或 Keyboard。
通常,逻辑焦点是上次在该焦点范围上获得键盘焦点的元素。焦点范围可能是应用程序、表单、顶级窗口、选项卡等。换句话说,逻辑焦点是窗体或窗口如何记住哪个控件最后拥有键盘焦点的方式。
FocusManager 获取指定焦点范围内具有逻辑焦点的元素,在本例中为 Window (this):
IInputElement focusedControl = FocusManager.GetFocusedElement(this);
Keyboard 将返回具有当前键盘输入焦点的元素:
IInputElement focusedControl = Keyboard.FocusedElement;
【讨论】: