【问题标题】:Shift+Tab does not work in Styled WPF combo boxShift+Tab 在样式化 WPF 组合框中不起作用
【发布时间】:2020-11-22 18:30:54
【问题描述】:

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

我这里使用的是微软发布的源代码: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 添加到另一个答案中建议的窗口中的所有控件,并将 KeyboardNavigation.TabNavigation 设置为“无”和“本地”。我错过了什么?

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

【问题讨论】:

    标签: wpf wpf-style


    【解决方案1】:

    如果处于编辑模式 (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 设计器提取模板,方法是右键单击所选控件(在设计视图中)并选择 “编辑模板 | 编辑副本...” 或使用Visual Studio Blend 修改控件的原始样式。 Microsoft Docs 提供的样式和模板并不总是准确的。原始样式(使用 Visual Studio 或 Blend 提取时)已经定义了此触发器,在 Microsoft Docs 版本中缺少该触发器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-24
      • 2012-04-17
      • 2011-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多