silverlight围绕其中心的旋转线

silverlight围绕其中心的旋转线,silverlight,rotation,Silverlight,Rotation,我已经通过代码在Silverlight 5应用程序中创建了一个line对象,现在我想绕着它的中心点旋转这条线,但行为很奇怪,所以这条线正在围绕屏幕的左上角旋转,这是我的代码: RotateTransform rotate = new RotateTransform(); rotate.Angle = myArrowAngle[i] + off_x; myLines[i].RenderTrans

我已经通过代码在Silverlight 5应用程序中创建了一个line对象,现在我想绕着它的中心点旋转这条线,但行为很奇怪,所以这条线正在围绕屏幕的左上角旋转,这是我的代码:

                    RotateTransform rotate = new RotateTransform();
                rotate.Angle = myArrowAngle[i] + off_x;
                myLines[i].RenderTransformOrigin = new Point(0.5d, 0.5d);
                myLines[i].RenderTransform = rotate;
出什么事了?
我设置了线条对象的RenderTransferOrigin,但运气不好,我应该在旋转变换之后还是之前移动对象?这个轮换是如何进行的?在模型空间还是在世界空间?当我的线围绕画布的(0,0)点而不是其中心旋转时,它似乎正在世界空间中旋转

当您将变换原点设置为0.5,0.5时,您将其相对于线的“边界框”进行设置,它不一定与线本身的中心重合

请参见以下示例:

<Canvas>
    <Line X1="0" Y1="50" X2="100" Y2="50"
          StrokeThickness="4" Stroke="Red" RenderTransformOrigin="0.5,0.5">
        <!--<Line.RenderTransform>
            <RotateTransform Angle="45" CenterX="0.5" CenterY="0.5"  />
        </Line.RenderTransform>-->
    </Line>
</Canvas>

如果取消对变换的注释,将从该框中的小圆处应用该变换


这能解释你所经历的吗?

是的,我想我有类似的东西,现在我怎样才能绕着它的中心旋转这条线?