我觉得这应该很容易,但我不能围绕一个点旋转元素。
我可以设置点的位置,一点也不麻烦,但似乎没有一个简单的方法来旋转它。
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
,然后查看