2016-06-19 170 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のように動作しないということですスタイル。特定の要素を拡大することはできないので、毎回すべてを宣言する必要があります。たとえば、境界線の寸法を指定しなかったため、「目盛り」記号が表示されません。これは簡単に修正されています:

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

しかし、主な問題は残っていますが、機能するCheckBoxはありません。それは最も簡単なコピーthe original templateを縫い合わせ、好きなように変更します。

+0

ありがとう、私はそれを試してみましょう。 – spiderplant0

関連する問題