2017-04-05 1 views
0

으로 변경합니다. 데이터 트리거를 사용하여 이미지 소스를 아이콘으로 변경합니다. = 거짓 Value="False 또는 inderterminate Value="{x:Null}을의 IsChecked 때 그것은 국가의 기본에 체크 박스 스타일 (또는 이미지)를 설정 할 수있는 방법동적으로 체크 박스 스타일을 기본값

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

인가?

답변

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> 
관련 문제