Wpf 逻辑焦点和键盘焦点的区别是什么?

Wpf 逻辑焦点和键盘焦点的区别是什么?,wpf,focus,Wpf,Focus,在研究一个焦点问题时(在WPF中),我在中遇到了这个描述。恐怕第5段和第6段把我弄丢了 有人能简单地解释一下最后两段吗 短暂性脑缺血发作 在Windows演示基础(WPF)中有两个概念 关注焦点:键盘焦点和逻辑焦点 键盘焦点 属于当前正在接收键盘输入的元素。 只有一个元素具有键盘焦点。此元素具有 键盘焦点已将IsKeyboardFocused设置为true。 FocusedElement返回具有键盘焦点的元素 逻辑焦点与内部的FocusManager.FocusedElement相关 具体重点范

在研究一个焦点问题时(在WPF中),我在中遇到了这个描述。恐怕第5段和第6段把我弄丢了

有人能简单地解释一下最后两段吗

短暂性脑缺血发作

在Windows演示基础(WPF)中有两个概念 关注焦点:键盘焦点和逻辑焦点

键盘焦点 属于当前正在接收键盘输入的元素。 只有一个元素具有键盘焦点。此元素具有 键盘焦点已将IsKeyboardFocused设置为true。 FocusedElement返回具有键盘焦点的元素

逻辑焦点与内部的FocusManager.FocusedElement相关 具体重点范围

焦点范围是一个容器元素,它保持 在其范围内跟踪FocusManager.FocusedElement。默认情况下, Window类是一个焦点范围,菜单、ContextMenu和 工具栏类。作为焦点范围的元素具有IsFocusScope 设置为true

可以有多个具有逻辑焦点的元素,但是 一个焦点中只能有一个元素具有逻辑焦点 范围具有逻辑焦点的元素不一定具有 键盘焦点,但具有键盘焦点的元素将具有逻辑 集中可以在焦点范围内定义焦点范围。在里面 在这种情况下,父焦点作用域和子焦点作用域都可以 有一个FocusManager.FocusedElement

下面的场景演示了 Windows演示文稿中键盘焦点和逻辑焦点如何更改 基础(WPF)应用程序,它有一个带有文本框和窗口的窗口 包含菜单项的菜单。当键盘焦点从 文本框到菜单项,文本框失去键盘焦点,但保留 窗口焦点作用域的逻辑焦点。MenuItem获得 键盘焦点并获取菜单焦点范围的逻辑焦点。 当键盘焦点返回到根窗口时,窗口中的元素 具有逻辑焦点的焦点作用域将获得键盘焦点,在 这个箱子是文本框。文本框现在具有键盘焦点和 逻辑焦点。MenuItem失去键盘焦点,但保留逻辑焦点 菜单焦点范围的焦点


简言之,一个应用程序或视图中可能有几个不同的焦点范围,但整个屏幕上只有一个元素可以具有键盘焦点

在每个焦点范围中,最多可能有一个元素具有逻辑焦点。因此,如果视图中有4个焦点范围,那么总共可能有4个元素具有逻辑焦点,但其中只有一个元素具有键盘焦点

键盘焦点是指当前正在接收键盘输入的元素。当键盘焦点离开特定的焦点范围时,焦点元素将失去键盘焦点,但将保留逻辑焦点。这意味着当键盘焦点返回到焦点范围时,焦点元素将再次获得键盘焦点

因此,如果在焦点范围A中有两个元素,例如文本框和按钮,当您将光标放在另一个焦点范围B中的另一个文本框中时,其中一个元素具有键盘焦点,那么当焦点范围B中的文本框具有键盘焦点时,焦点范围A中的文本框仍然具有逻辑焦点


希望这是有意义的。

简而言之,一个应用程序或视图中可能有几个不同的焦点范围,但整个屏幕上只有一个元素可以具有键盘焦点

在每个焦点范围中,最多可能有一个元素具有逻辑焦点。因此,如果视图中有4个焦点范围,那么总共可能有4个元素具有逻辑焦点,但其中只有一个元素具有键盘焦点

键盘焦点是指当前正在接收键盘输入的元素。当键盘焦点离开特定的焦点范围时,焦点元素将失去键盘焦点,但将保留逻辑焦点。这意味着当键盘焦点返回到焦点范围时,焦点元素将再次获得键盘焦点

因此,如果在焦点范围A中有两个元素,例如文本框和按钮,当您将光标放在另一个焦点范围B中的另一个文本框中时,其中一个元素具有键盘焦点,那么当焦点范围B中的文本框具有键盘焦点时,焦点范围A中的文本框仍然具有逻辑焦点

希望这是有道理的。

确实有道理。谢谢(当你累了的时候,你不想快速阅读!)这是有道理的。谢谢(当你累了的时候,你不想快速阅读!)。