如何旋转元素/框架元素



我觉得这应该很容易,但我不能围绕一个点旋转元素。

我可以设置点的位置,一点也不麻烦,但似乎没有一个简单的方法来旋转它。

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

在我的画布上,在图像属性中有一个旋转它的选项,但我不知道如何在代码中进行,以便可以动态地进行。

谢谢。

这里是一个简单的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,然后查看

最新更新