wpf如何修改combobox的三角形颜色
时间: 2023-10-06 21:14:03 浏览: 130
您可以使用自定义模板来修改ComboBox的下拉箭头颜色。您可以使用以下代码创建自定义模板:
```xml
<ComboBox>
<ComboBox.Resources>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Foreground" Value="Black" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CheckStates">
<VisualState x:Name="Checked">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="Arrow">
<EasingColorKeyFrame KeyTime="0" Value="#FF8B8B8B"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Unchecked"/>
<VisualState x:Name="Indeterminate"/>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="18"/>
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderThickness="{TemplateBinding BorderThickness}" Padding="2">
<ContentPresenter />
</Border>
<Path x:Name="Arrow" Grid.Column="1" Fill="#FF707070" HorizontalAlignment="Center" VerticalAlignment="Center"
Data="M 0 0 L 4 4 L 8 0 Z"/>
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.Resources>
</ComboBox>
```
在这个模板中,我们重写了ToggleButton的模板,并使用Path来绘制箭头。我们在箭头路径的Data属性中定义一个三角形形状。
我们使用VisualStateManager来定义箭头在ToggleButton被选中时的颜色。在<VisualState x:Name="Checked">中,我们更新了箭头填充颜色的SolidColorBrush颜色。此代码显示灰色的箭头:
```
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)" Storyboard.TargetName="Arrow">
<EasingColorKeyFrame KeyTime="0" Value="#FF8B8B8B"/>
</ColorAnimationUsingKeyFrames>
```
我们将其中的“Value”属性更改为您想要的箭头颜色,然后使用此模板更新ComboBox的样式。
阅读全文