2014-09-10 160 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,並且瞧