2017-04-05 59 views
0

我使用數據觸發器將複選框Image Source更改爲圖標。動態更改複選框樣式爲默認

<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> 

=器isChecked假Value="False或inderterminate Value="{x:Null}當它是任何方式複選框類型(或圖像)設置爲默認的各國?

回答

1

如果只想當CheckBox被選中,你可以申請一個Style與應用您的自定義模板TriggerCheckBox

<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>