我觉得这应该很简单,但我无法围绕一个点旋转元素。
我可以毫不费力地设置点的位置,但似乎不是一个简单的旋转方式。
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 :(得分: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
而不是瞧