簡體   English   中英

在WPF復選框中更改顏色

[英]Change colors in a WPF CheckBox

我想為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>

問題在於ControlTemplates不能用作樣式。 由於無法放大特定元素,因此需要每次聲明所有內容。 例如,您看不到“ tick”符號,因為省略了邊框的尺寸。 這很容易解決:

<Border Background="{TemplateBinding Background}" 
        BorderThickness="1" 
        BorderBrush="Aquamarine"
        Width="13"
        Height="13"
        >

但是主要問題仍然存在,您將無法使用功能強大的CheckBox。 它看起來很容易復制原始模板並將其更改為您喜歡的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM