【问题标题】:silverlight rotating line around its center银光围绕其中心的旋转线
【发布时间】:2013-03-28 15:00:20
【问题描述】:

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

                    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) 点而不是它的中心旋转

【问题讨论】:

    标签: silverlight rotation


    【解决方案1】:

    当您将变换原点设置为 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>
    

    如果您取消注释转换,它将从该框中小圆圈的位置应用。

    这能解释一下你的经历吗?

    【讨论】:

    • 是的,我想我有这样的东西,现在我怎样才能围绕它的中心旋转线?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    相关资源
    最近更新 更多