在WPF(MVVM,没有代码隐藏),说我有以下xaml:
<StackPanel>
<Button>Normal 1</Button>
<Button>Special</Button> <!--This button should not tab focus, but still focus via arrow keys-->
<Button>Normal 2</Button>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
默认情况下,您可以(1)按钮之间的标签或(2)按钮之间的上/下箭头.我想使按钮之一- 特殊按钮- 不通过标签可成为焦点,但通过上/下依然可获得焦点.我试过了IsTabStop="False"
,但这也阻止了通过方向导航(向上/向下箭头)聚焦该按钮.
如何继续允许方向导航,如何从标签导航中删除单个按钮?对于所有其他控件,选项卡和箭头应该不受影响.
我试过的组合IsTabStop
,KeyboardNavigation.TabNavigation
和KeyboardNavigation.DirectionalNavigation
无济于事.也许我找不到合适的搭配.或许还有另一种方法.想法?
编辑:好的,我正在加入一笔赏金.为了清楚起见,我正在寻找一个MVVM,没有代码隐藏的方式来装饰一个控件(例如通过样式,附加属性,附加行为等),这样就可以从Tab键顺序中删除它,同时保持有效的方向导航目标.对窗口(或类似)中的控件的硬编码知识是不可接受的.这需要是一个通用的,可重用的解决方案.像:<Button AllowDirectionalNavigationButPreventTabNavigation="True"/>
.