【问题标题】:How does RotateTransform work? Can I change the point on the rectangle where it rotates?RotateTransform 是如何工作的?我可以更改它旋转的矩形上的点吗?
【发布时间】:2020-02-29 15:53:01
【问题描述】:

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

代码如下:

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

        myRectangle.RenderTransform = rotateTransform1;

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

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

【问题讨论】:

    标签: c# wpf rotatetransform


    【解决方案1】:

    使用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;
    

    【讨论】:

    • 我认为这将是解决方案。我将不得不进行实验。设置值的方法多么奇怪!但是,谢谢!非常感谢!最终起作用的值是: myRectangle.RenderTransformOrigin = new Point(0.5, 0);
    猜你喜欢
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 2012-09-23
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多