调用CheckBox.Focus()时如何使CheckBox焦点边框出现?

Gre*_*som 4 wpf checkbox focus border indicator

当用户选中CheckBox以使其聚焦时,CheckBox周围会出现一个虚线边框,表示它具有焦点.

当CheckBox通过代码调用聚焦时myCheckBox.Focus(),不会出现这样的指示符(即使按空格键切换状态).

当我以编程方式聚焦CheckBox时,如何使CheckBox焦点边框出现?

Gim*_*mno 8

只有在您通过键盘导航时才会有效地显示边框(Tab键).有关此主题的MSDN页面有更多详细信息:

仅当键盘启动焦点动作时,焦点视觉样式才会起作用.任何鼠标操作或程序化焦点更改都会禁用焦点视觉样式的模式.

如果要显示边框,可以使用IsFocused-属性上的触发器进行一些视觉更改(虽然您无法设置边框)或者如果您确实需要边框,则必须创建自己的边框控件模板.

在SO上还有一个关于某个相关主题的帖子,其中的建议是模拟按键,但我建议不要将此解决方案用于您的问题.