我想为WPF复选框指定边框和背景的特定颜色。到目前为止我看到的所有例子似乎都太复杂了,因为它们涉及到改变一切 - 我只是想改变颜色。
这就是我到目前为止 - 颜色是正确的但复选框已缩小(无法看到'tick'符号)......
<Style TargetType="CheckBox">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="Padding" Value="0" />
<Setter Property="Background" Value="#666666" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="CheckBox">
<Border Background="{TemplateBinding Background}"
BorderThickness="1"
BorderBrush="Aquamarine">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="False">
<Setter Property="BorderBrush" Value="Aquamarine"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="BorderBrush" Value="Aquamarine" />
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#ffff00"/>
<Setter Property="BorderBrush" Value="Aquamarine"/>
</Trigger>
</Style.Triggers>
</Style>
答案 0 :(得分:2)
问题是ControlTemplates不能用作样式。由于无法放大特定元素,因此每次都需要声明所有内容。例如,您无法看到“tick”符号,因为您省略了边框的尺寸。这很容易解决:
<Border Background="{TemplateBinding Background}"
BorderThickness="1"
BorderBrush="Aquamarine"
Width="13"
Height="13"
>
但主要问题仍然是,你不会得到一个功能齐全的CheckBox。它最容易复制the original template并将其更改为您喜欢的方式。