.net - 获取 WPF 窗口中当前聚焦的元素/控件

标签 .net wpf focus

如何从既不属于窗口也不属于用户控件的代码中获取 WPF 中当前聚焦的元素/控件?

最佳答案

这取决于您所追求的焦点类型:逻辑键盘

  • 键盘焦点指的是当前接收键盘输入的元素。整个桌面中只有一个元素可以具有键盘焦点。
  • 逻辑焦点是指焦点范围中接收键盘输入的元素,如果焦点范围处于事件状态。

通常,逻辑焦点是在该焦点范围内最后接收键盘焦点的元素。焦点范围可能是应用程序、表单、顶级窗口、选项卡等。换句话说,逻辑焦点是窗体或窗口如何记住哪个控件最后拥有键盘焦点。

FocusManager 获取指定焦点范围内具有逻辑焦点的元素,在本例中为 Window (this):

IInputElement focusedControl = FocusManager.GetFocusedElement(this);

Keyboard 将返回具有当前键盘输入焦点的元素:

IInputElement focusedControl =  Keyboard.FocusedElement;

关于.net - 获取 WPF 窗口中当前聚焦的元素/控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19392036/

相关文章:

当应用程序最小化到托盘时,C# MessageBox 显示在前面

c# - 将 ClipboardContentBinding 绑定(bind)到 DisplayMemberPath

matlab - 如何检测文本编辑对象的焦点丢失?

javascript - Photoswipe 图库关闭后如何控制焦点?

c# - 从 WPF 应用程序引用通用 Windows 库

html - 焦点时表单输入的图标消失

c# - 在不使用类的情况下,C# 中 javascript 对象的替代方案是什么?

c# - Word 模板中动态内容的自定义占位符/标签

android - 系统.Net.WebException : Error: NameResolutionFailure when Calling WCF Services throwing exception in mono android application

wpf - 将数据模板绑定(bind)到 ContentControl 的内容