Shift+Tab 在样式化 WPF 组合框中不起作用

Shift+Tab does not work in Styled WPF combo box

我正在尝试设置 WPF 组合框的样式。一切正常,除非 IsEditable="true",Shift+Tab 拒绝移回上一个控件。似乎每次按下 Shift+Tab 时都会重新选择包含的 TextBox。选项卡工作正常。

我在这里使用 MS 发布的源代码:https://docs.microsoft.com/en-us/dotnet/desktop/wpf/controls/combobox-styles-and-templates?view=netframeworkdesktop-4.8

github 上报告了一个问题,此处:https://github.com/dotnet/docs/issues/11552

但是没有人提供解决方案

我已经尝试了所有显而易见的事情,包括将 TabIndex 添加到另一个答案中建议的 window 中的所有控件,并将 KeyboardNavigation.TabNavigation 设置为“None” ”和“本地”。我错过了什么?

无样式的组合框工作正常。

如果处于编辑模式 (IsEnabled="True"),您必须从 ComboBox 中删除制表位 (IsTabStop="False")。最好在 Style:

添加对应的触发器
<Style TargetType="{x:Type ComboBox}">

  ...

  <Style.Triggers>
    <Trigger Property="IsEditable" Value="true">
      <Setter Property="IsTabStop" Value="false"/>
    </Trigger>
  </Style.Triggers>
</Style>

最好使用 XAML 设计器提取模板,方法是右键单击 selected 控件(在设计视图中)和 select " Edit Template | Edit a Copy..." 或使用 Visual Studio Blend 修改控件的原始样式。 Microsoft Docs 提供的样式和模板并不总是准确的。原始样式(当使用 Visual Studio 或 Blend 提取时)已经有这个触发器,在 Microsoft Docs 版本中没有定义。