【问题标题】:Keyboard focus vs logical focus in WPFWPF中的键盘焦点与逻辑焦点
【发布时间】:2009-08-24 06:51:39
【问题描述】:

WPF 中键盘焦点和逻辑焦点有什么区别?以及 WPF 焦点与 winform 中的焦点有何不同?

【问题讨论】:

    标签: .net wpf .net-3.5 focus


    【解决方案1】:

    Focus Overview

    键盘焦点是指当前正在接收的元素 键盘输入。整个桌面只能有一个元素 具有键盘焦点。在 WPF 中,具有键盘焦点的元素 将 IsKeyboardFocused 设置为 true。静态属性 Keyboard 类上的 FocusedElement 获取当前的元素 有键盘焦点。

    逻辑焦点是指焦点中的 FocusManager.FocusedElement 范围。焦点范围是跟踪 FocusedElement 在其范围内。当键盘焦点离开焦点时 范围,焦点元素将失去键盘焦点但将保留 逻辑重点。当键盘焦点返回焦点范围时, 聚焦元素将获得键盘焦点。这允许键盘 焦点在多个焦点范围之间改变,但确保 焦点范围内的焦点元素在焦点时重新获得键盘焦点 返回焦点范围。

    【讨论】:

    • 那么,什么时候使用逻辑焦点呢?
    • 什么时候使用?
    • 什么时候应该使用它。
    • 这个想法是,当没有焦点在窗口上时,仍然有逻辑焦点......留在最后一个有焦点的元素上
    • 有什么用?
    【解决方案2】:

    我发现了一系列关于 WPF 焦点的不错的博客文章。

    1. Part1ItsBasicallyFocus

    2. Part2ChangingWPFFocusInCode

    3. Part3ShiftingFocusToTheFirstAvailableElementInWPF

    它们都很好读,但第一部分专门处理逻辑与键盘焦点。第 3 部分展示了一种将焦点设置到 UserControl 中的 UI 元素的好方法。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多