首页 > 解决方案 > RotateTransform 是如何工作的?我可以更改矩形上旋转的点吗?

问题描述

我不明白 RenderTransform 偏移是如何工作的。我想围绕一个点旋转一个矩形。具体来说,我希望矩形围绕宽度一半的点旋转。这是一个屏幕截图: 在此处输入图像描述

这是代码:

   RotateTransform rotateTransform1 = new RotateTransform(angle, 0 , 0  );

        myRectangle.RenderTransform = rotateTransform1;

我尝试了不同的值来替换 0(如宽度 / 2)。这似乎改变了屏幕上旋转中心的位置。我需要改变的是它旋转的矩形的哪一部分。具体来说,我希望矩形围绕其宽度中间的一个点旋转。

甚至可以调整矩形旋转的点吗?

标签: c#wpfrotatetransform

解决方案


使用RenderTransformOrigin

RenderTransformOrigin 对 Point 结构值的使用有点不标准,因为 Point 不代表坐标系中的绝对位置。相反,0 到 1 之间的值被解释为每个 x,y 轴中当前元素范围的一个因子。例如,(0.5,0.5) 将导致渲染变换以元素为中心,或者 (1,1) 将渲染变换放置在元素的右下角。

myRectangle.RenderTransformOrigin = new Point(0.5,0.5);
myRectangle.RenderTransform = rotateTransform1;

推荐阅读