【发布时间】:2015-05-06 09:59:50
【问题描述】:
如果我有一组按钮作为 wpf 控件,例如:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<StackPanel>
<Button Content="Button 1"/>
<Button Content="Button 2"/>
</StackPanel>
</UserControl>
并运行此应用程序,Button 1 与预期一样,专注于启动,但没有 FocusVisualStyle,即按钮周围的虚线。按 tab 键给 Button 2 焦点,并给它 FocusVisualStyle。再次按 Tab 键将焦点返回到具有 FocusVisualStyle 的按钮 1。
这是我所追求的行为:在启动时,按钮 1 应该有焦点,没有 FocusVisualStyle。按选项卡将焦点保持在按钮 1 上并为其提供 FocusVisualStyle(不是按钮 2)。再次按 Tab 键会在按钮之间循环,从而相应地提供每个焦点和 FocusVisualStyle。
理想情况下,我想在 XAML 中实现这一点,但不确定是否可以尝试通过焦点管理器设置焦点元素的各种组合。有什么建议可以实现吗?
【问题讨论】:
-
我认为按 Tab 键来聚焦已经聚焦的东西是一种不好的行为。我宁愿建议您为此目的使用样式触发器。