【问题标题】:Get currently focused element/control in a WPF window在 WPF 窗口中获取当前聚焦的元素/控件
【发布时间】:2013-10-15 22:15:18
【问题描述】:

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

【问题讨论】:

    标签: .net wpf focus


    【解决方案1】:

    这取决于您关注的焦点类型,LogicalKeyboard

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

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

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

    IInputElement focusedControl = FocusManager.GetFocusedElement(this);
    

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

    IInputElement focusedControl =  Keyboard.FocusedElement;
    

    【讨论】:

    猜你喜欢
    • 2011-01-23
    • 2011-06-05
    • 2018-11-14
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    相关资源
    最近更新 更多