wpf combobox 倒三角样式
时间: 2023-08-30 10:05:13 浏览: 45
你可以使用 WPF 中的 ControlTemplate 来自定义 ComboBox 的外观,包括倒三角样式。以下是一个示例代码:
```xml
<ComboBox>
<ComboBox.Resources>
<Style TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border x:Name="Border" Grid.ColumnSpan="2" Background="Transparent" BorderThickness="1" BorderBrush="Gray" CornerRadius="3" />
<Path x:Name="Arrow" Grid.Column="1" Fill="Gray" HorizontalAlignment="Center" VerticalAlignment="Center" Data="M 0 0 L 4 4 L 8 0 Z" />
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="Border" Property="Background" Value="Gray" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Border" Property="BorderBrush" Value="Black" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Border" Property="Background" Value="Black" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Arrow" Property="Fill" Value="LightGray" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ComboBox.Resources>
<ComboBoxItem>Item 1</ComboBoxItem>
<ComboBoxItem>Item 2</ComboBoxItem>
<ComboBoxItem>Item 3</ComboBoxItem>
</ComboBox>
```
这个代码会创建一个简单的 ComboBox,其中的 ToggleButton 控制打开和关闭 ComboBox 的下拉列表。我们定义了一个新的 ControlTemplate,将原来的 ToggleButton 模板替换为我们自己的样式。在模板中,我们使用一个 Path 元素来绘制倒三角,通过 Grid 和 ColumnDefinition 元素将它放置在正确的位置。在 ControlTemplate.Triggers 中,我们定义了一些触发器来响应鼠标的交互操作,例如当鼠标经过时改变边框的颜色,当按下时改变背景色等。