2011-09-27 5 views
0

LayoutTransform을 사용하여 이미지 컨트롤을 회전하고 싶지만 내가 직면하고있는 문제는 XMAL에서 할 수 있지만 코드는 숨길 수는 없다는 것입니다.코드에서 이미지 회전

내가 여기에 새로운 WPF

XMAL `

<Image Grid.Column="1" Grid.Row="4" Height="155" HorizontalAlignment="Left"  
    Margin="103,0,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="139" 
    Source="/7SegmentLed;component/Images/Caster1.png" Grid.RowSpan="2" > 
    <Image.LayoutTransform> 
     <RotateTransform Angle="{Binding AngleSlider}" /> 
    </Image.LayoutTransform> 
    </Image> 

CODE

double AngleSlider = 90.0; 

image1.DataContext = AngleSlider; 

내가 다시하지만 사실에서 계산 된 값에서 동적으로 업데이트 할 것입니다 고정되어 있고 변경되지 않을 이미지를 바꾸고 싶지 않다는 것입니다.

아무도 내가 무엇을 잘못하고 있는지 알려주지 않으면 좋을 것 같습니다.

+0

이해가 안됩니다. 회전하고 싶지만 변경하지 않으시겠습니까? – CodingGorilla

+0

이미지를 회전하고 싶지만 새 이미지를 지정하지 않으려면 –

답변

2

바인딩이 약간 꺼져 있습니다. DataContext을 두 배로 설정할 수 있지만 바인딩은 두 배에 AngleSlider이라는 속성을 찾으려고 시도하지만 이는 분명히 없습니다.

그래서 대신과 같이 AngleSlider라는 유형 Double의 속성을 가진 클래스를 생성 :

public class MySliderDataContext : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    public double AngleSlider 
    { 
     get { return _angle; } 
     set 
     { 
      _angle = value; 
      if(PropertyChanged != null) 
       PropertyChanged(this, new PropertyChangedEventArgs("AngleSlider")); 
     } 
    }   
} 

이 클래스의 인스턴스를 생성하고 창에 필드에 저장 한 다음 해당 인스턴스를 할당 DataContext에 : 이제

private MySliderDataContext _sliderAngle; 

image1.DataContext = _sliderAngle; 

을 수행 할 수 있습니다 필요한 경우 :

_sliderAngle.SliderAngle = 90; 
,536,

그러면 이미지가 회전해야합니다.

+0

완벽한 답변 감사합니다. –