在 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>
默认情况下,您可以 (1) 按钮之间的制表符或 (2) 按钮之间的向上/向下箭头。我想制作其中一个按钮——特殊按钮——不能通过选项卡聚焦,但仍然可以通过向上/向下聚焦。我试过IsTabStop="False"
了,但这也阻止了通过定向导航(向上/向下箭头)聚焦该按钮。
如何从选项卡导航中删除单个按钮,同时继续允许定向导航?对于所有其他控件,制表符和箭头应该不受影响。
我尝试了, 和的组合IsTabStop
,但无济于事。也许我还没有找到合适的组合。或者也许还有另一种方法。想法?KeyboardNavigation.TabNavigation
KeyboardNavigation.DirectionalNavigation
编辑:好的,我正在添加赏金。需要明确的是,我正在寻找一个 MVVM,没有代码隐藏方式来装饰控件(例如,通过样式、附加属性、附加行为等),以便将其从选项卡顺序中删除,同时保持有效的方向导航目标。将控件硬编码到窗口(或类似)中是不可接受的。这需要一个通用的、可重用的解决方案。类似的东西:<Button AllowDirectionalNavigationButPreventTabNavigation="True"/>
。