2013-07-11 3 views

답변

0

그래서 나는 마침내 그것을 생각은, 사용자 Gambi 다른 thread.

0

이미지 전환을 기반으로 할 수있는 IsChecked 속성이 있으므로 단추 대신 토글 단추를 사용하여이 작업을 수행 할 수 있습니다.

먼저 True/False에서 이미지 경로로 이동하는 데 약간의 변환기가 필요하며 반복해서 사용할 수있는 일반 변환기로 만들 수도 있고 프로젝트에 추가하고 xmlns를 가리 키도록 설정할 수도 있습니다 너의 xaml에.

public class BooleanSwitchConverter : DependencyObject, IValueConverter 
    { 
     public object TrueValue 
     { 
      get { return (object)GetValue(TrueValueProperty); } 
      set { SetValue(TrueValueProperty, value); } 
     } 
     public static readonly DependencyProperty TrueValueProperty = 
      DependencyProperty.Register("TrueValue", typeof(object), typeof(BooleanSwitchConverter), new PropertyMetadata(null)); 

     public object FalseValue 
     { 
      get { return (object)GetValue(FalseValueProperty); } 
      set { SetValue(FalseValueProperty, value); } 
     } 
     public static readonly DependencyProperty FalseValueProperty = 
      DependencyProperty.Register("FalseValue", typeof(object), typeof(BooleanSwitchConverter), new PropertyMetadata(null)); 

     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      return ((bool)value) ? TrueValue : FalseValue; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 

그런 다음 바코드를 IsChecked의 바인딩을 사용하여 이미지와 같은 토글 버튼으로 바꿉니다.

<ToggleButton> 
      <ToggleButton.Template> 
       <ControlTemplate TargetType="ToggleButton"> 
        <Border> 
         <Image> 
          <Image.Source> 
           <Binding Path="IsChecked" RelativeSource="{RelativeSource TemplatedParent}"> 
            <Binding.Converter> 
             <local:BooleanSwitchConverter 
              TrueValue="1.jpg" 
              FalseValue="2.jpg"/> 
            </Binding.Converter> 
           </Binding> 
          </Image.Source> 
         </Image> 
        </Border> 
       </ControlTemplate> 
      </ToggleButton.Template> 
     </ToggleButton> 
0

당신은 (샘플의 편의를 위해 사각형을 사용)과 같은 트리거를 사용할 수 있습니다

<Button x:Name="buttonTest" Width="200" Height="200"> 
    <Button.Template> 
     <ControlTemplate TargetType="{x:Type Button}"> 
      <Border HorizontalAlignment="Center" VerticalAlignment="Center" > 
       <Rectangle x:Name="Image" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}" Fill="Yellow"></Rectangle> 
      </Border> 
      <ControlTemplate.Triggers> 
       <Trigger Property="IsPressed" Value="True"> 
        <Setter TargetName="Image" Property="Fill" Value="Red"></Setter> 
       </Trigger> 
      </ControlTemplate.Triggers> 
     </ControlTemplate> 
    </Button.Template> 
</Button> 
+0

에 대한 답을 제공 "유형 버튼이 Silverlight 프로젝트에서 지원되지 않습니다"라는 오류 메시지가 나타납니다. – Kajzer

+0

버튼을 클릭했을 때가 아니라 버튼을 누르고있을 때만 이미지가 변경됩니다. – Andy

+0

OP가 무엇을 요구하는지 명확하지 않습니다. –

관련 문제