在WPF中,键盘焦点和逻辑焦点有什么区别?WPF的焦点与winform中的焦点有何不同?
请参阅关于焦点的概述
键盘焦点指当前正在接收键盘输入的元素。整个桌面上只能有一个具有键盘焦点的元素。在WPF中,具有键盘焦点的元素将具有IsKeyboardFocused属性设置为true。键盘类上的静态属性FocusedElement获取当前具有键盘焦点的元素。
逻辑焦点是指焦点范围内的FocusManager.FocusedElement。焦点范围是跟踪其范围内FocusedElement的元素。当键盘焦点离开焦点范围时,聚焦元素将失去键盘焦点但保留逻辑焦点。当键盘焦点返回到焦点范围时,聚焦元素将获得键盘焦点。这允许在多个焦点范围之间更改键盘焦点,但确保在焦点返回到焦点范围时,焦点范围内的聚焦元素会重新获得键盘焦点。
我找到了一系列关于WPF焦点的好博客文章。
这些文章都很值得阅读,但第1部分特别涉及逻辑焦点和键盘焦点。第3部分展示了在UserControl中设置UI元素焦点的好方法。