2016-06-19 6 views
1

Я хотел бы указать конкретные цвета для рамки и фона для флажка WPF. Все примеры, которые я видел до сих пор, кажутся слишком сложными, поскольку они требуют изменения всего - я просто хочу изменить цвета.Изменить цвета в WPF CheckBox

Это то, что я до сих пор - цвета правильны, но флажок сократился (не могу видеть символ «тик») ...

<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

CheckBox и Button сложны, и они не используют стиль для многих вещей. Вероятно, то, что вы видели, кажется слишком сложным. – Paparazzi

ответ

1

Проблема в том, что ControlTemplates не работают Стили. Поскольку вы не можете приблизить к определенному элементу, вам нужно каждый раз объявлять все. Например, вы не видите символ «tick», потому что вы не учитываете размеры границы. Это легко фиксируется:

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

Но основная проблема остается, вы не получите функциональный CheckBox. Он лучше всего копирует the original template и меняет его так, как вам нравится.

+0

Спасибо, я попробую. – spiderplant0

Смежные вопросы