在组合框 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
,但开发人员可以轻松覆盖它。
我需要在 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
,但开发人员可以轻松覆盖它。