我正在尝试设置WPF组合框的样式。一切正常,除非IsEditable =“ true”时,Shift + Tab拒绝退回到上一个控件。似乎每次按下Shift + Tab都会重新选择包含的TextBox。制表符工作正常。
我在这里使用MS发布的源代码:https : //docs.microsoft.com/zh-cn/dotnet/desktop/wpf/controls/combobox-styles-and-templates?view=netframeworkdesktop-4.8
在github上报告了一个问题,这里:https : //github.com/dotnet/docs/issues/11552
但是没有人提供解决方案。
我尝试了所有显而易见的事情,包括将TabIndex添加到另一个答案中建议的窗口中的所有控件,以及将KeyboardNavigation.TabNavigation设置为“ None”和“ Local”。我想念什么?
无样式的组合框可以正常工作。
你必须删除制表位(IsTabStop="False"
从)ComboBox
,如果在编辑模式下(IsEnabled="True"
)。最好在上添加一个相应的触发器Style
:
<Style TargetType="{x:Type ComboBox}">
...
<Style.Triggers>
<Trigger Property="IsEditable" Value="true">
<Setter Property="IsTabStop" Value="false"/>
</Trigger>
</Style.Triggers>
</Style>
始终最好使用XAML设计器来提取模板,方法是右键单击选定的控件(在设计视图中),然后选择“编辑模板|编辑副本...”,或者使用Visual Studio Blend修改控件的原始样式。Microsoft Docs提供的样式和模板并不总是准确的。原始样式(使用Visual Studio或Blend提取时)已具有此触发器,已定义的Microsoft Docs版本中缺少该触发器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句