2014-09-10 1 views
0

정말 쉽다는 느낌이 들지만 요점에 대해 요소를 회전시킬 수는 없습니다.요소/프레임 워크 요소를 회전하는 방법은 무엇입니까?

아무렇지도 않게 포인트의 위치를 ​​설정할 수 있지만 쉽게 회전 할 수있는 방법은없는 것처럼 보입니다. 이미지 속성에서 내 캔버스에

private void SetPosition(FrameworkElement element, ColorImagePoint point) 
    { 
     //Divid width and height by 2 to centre 
     Canvas.SetLeft(element, point.X - element.Width/2); //X axis 
     Canvas.SetTop(element, point.Y - element.Height/2); //Y axis 
     //I want to do something like this here: 
     Canvas.SetRotate(element, about_this_point, by_this_angle) 
    } 

이 그것을 회전 할 수있는 옵션입니다,하지만 난 그것을 동적으로 수행 할 수 있도록 코드에서 작업을 수행하는 방법을 알아낼 수 없습니다.

감사합니다.

답변

0

여기 간단한 예제 XAML 로테이션입니다.

<Image Height="100" Width="100" Source="{StaticResource Image_Key}" > 
    <Image.RenderTransform> 
     <RotateTransform CenterX="50" CenterY="50" Angle="45" /> 
    </Image.RenderTransform> 
</Image> 

이것은 이미지의 50,50 포인트를 기준으로 회전을 적용하기 만하면됩니다. 크기가 100 x 100으로 설정 되었기 때문에 이것은 중심 회전을 의미합니다. 이러한 모든 가치를 모델에 쉽게 바인딩 할 수 있습니다.

RotateTransform myRotateTransform = new RotateTransform(); 
myRotateTransform.Angle = 45; 
myImage.RenderTransform = myRotateTransform; 

또는 당신이 TransformGroup 객체를 생성 만 회전 이상을 필요로하는 경우, TransformGroup.Children.Add([transformation]); 및 설정과에 다른 어트 변환을 추가

그래서 형식이 코드를 추가 할 뿐이다 정의되어 거기에서 추가하는 것은 간단합니다 RenderTransform ~ TransformGroup 대신에