在组合框 WPF 中的文本下方添加边框

Add border below text in combobox WPF

我需要在 Combobox 中弹出的每一行下面添加一行。 所以现在我有如下所示的 Combobox:

并弹出使用此 XAML 代码实现的行:

          <Popup Name="PART_Popup"
             WindowManagerAddShadowHint="False"
             IsOpen="{TemplateBinding IsDropDownOpen, Mode=TwoWay}"
             MinWidth="{Binding Bounds.Width, RelativeSource={RelativeSource TemplatedParent}}"
             MaxHeight="{TemplateBinding MaxDropDownHeight}"
             PlacementTarget="{TemplateBinding}"
             IsLightDismissEnabled="True">
        <Grid>
          <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="5*"/>
            <RowDefinition Height="10*"/>
          </Grid.RowDefinitions>
          <Border x:Name="PopupBorder"
                  Grid.Row="1"
                  Background="#00A9FF"
                  BorderBrush="Black"
                  BorderThickness="{DynamicResource ComboBoxDropdownBorderThickness}"
                  Margin="0,-1,0,-1"
                  Padding="0"
                  HorizontalAlignment="Stretch"
                  CornerRadius="0"
                  Grid.Column="2"
                  >
           
            <ScrollViewer>
              <ItemsPresenter Name="PART_ItemsPresenter"
                              Items="{TemplateBinding Items}"
                              Margin="{DynamicResource ComboBoxDropdownContentMargin}"
                              ItemsPanel="{TemplateBinding ItemsPanel}"
                              ItemTemplate="{TemplateBinding ItemTemplate}"
                              VirtualizationMode="{TemplateBinding VirtualizationMode}"
                              />
             
            </ScrollViewer>
            
          </Border>
          
         
        </Grid>
      </Popup>

而且我需要制作类似于这个的 Combobox:

我无法插入一些额外的边框来显示线条,所以我不知道该怎么做。

您需要修改 ComboBoxItem 的 style/control 模板,而不是 ComboBox

你可以修改ComboBoxItem的控件模板,把这行放在那里。

另一种选择是为 ComboBox 的样式创建默认 ItemTemplate,但开发人员可以轻松覆盖它。