2017-04-05 3 views
0

Ich verwende einen Datentrigger, um das Kontrollkästchen Bildquelle auf Symbol zu ändern.Checkbox-Stil dynamisch auf Standard ändern

<CheckBox Content="An Image CheckBox Label" Foreground="Black" Margin="73,103,27,142" IsThreeState="True" > 
    <CheckBox.Template> 
     <ControlTemplate TargetType="{x:Type CheckBox}"> 
      <StackPanel Orientation="Horizontal"> 
       <Image> 
        <Image.Style> 
         <Style> 
          <Style.Triggers> 
           <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type CheckBox}}}" Value="True"> 
            <Setter Property="Image.Source" Value="/Images/Checkbox.ico" /> 
           </DataTrigger> 
           <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type CheckBox}}}" Value="False"> 
            <Setter Property="Image.Source" Value="/Images/CheckboxUncheck.ico" /> 
           </DataTrigger> 
           <DataTrigger Binding="{Binding IsChecked, RelativeSource={RelativeSource AncestorType={x:Type CheckBox}}}" Value="{x:Null}"> 
            <Setter Property="Image.Source" Value="/Images/delete_12x12.png" /> 
            <Setter Property="Image.Width" Value="10" /> 
            <Setter Property="Image.Height" Value="10" /> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </Image.Style> 
       </Image> 
       <ContentPresenter Content="{TemplateBinding Content}" Margin="5,0,0,0" /> 
      </StackPanel> 
     </ControlTemplate> 
    </CheckBox.Template> 
</CheckBox> 

Ist es eine Möglichkeit für die Staaten Checkbox Stil (oder Bild) auf den Standardwert zu setzen, wenn isChecked = False Value="False oder inderterminate Value="{x:Null}?

Antwort

1

Wenn Sie nur Ihre benutzerdefinierte Vorlage anzuwenden, wenn die CheckBox geprüft Sie eine Style mit einem Trigger auf die CheckBox Anwendung finden könnte:

<CheckBox Content="An Image CheckBox Label" Foreground="Black" Margin="73,103,27,142" IsThreeState="True" > 
    <CheckBox.Style> 
     <Style TargetType="CheckBox"> 
      <Style.Triggers> 
       <Trigger Property="IsChecked" Value="True"> 
        <Setter Property="Template"> 
         <Setter.Value> 
          <ControlTemplate TargetType="{x:Type CheckBox}"> 
           <StackPanel Orientation="Horizontal"> 
            <Image Source="/Images/Checkbox.ico" /> 
            <ContentPresenter Content="{TemplateBinding Content}" Margin="5,0,0,0" /> 
           </StackPanel> 
          </ControlTemplate> 
         </Setter.Value> 
        </Setter> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </CheckBox.Style> 
</CheckBox>