如何计算其他控件的RenderTransformOrigin标准?

时间:2016-03-23 06:04:35

标签: c# wpf rendertransform

我想计算' RenderTransformOrigin'其他控制的标准。 请看这张图片,因为我不会说英语。

Image 1

盒子放在同一水平。不是孩子,不是父母。 绿箱在理论上是父母。 因此,所有控件的RenderTransformOrigin都与绿色框相同。 但我认为RenderTransformOrigin是局部坐标系。

我想计算RenderTransformOrigin ......

谢谢你

修改 我现在试过这种方式....

中心点(局部坐标系?)

  

ItemHeight * CriteriaItem.OriginY
  ItemWidth * CriteriaItem.OriginX

计算(CenterPoint高于结果)

  

CenterPoint.X / TargetBoxWidth
  CenterPoint.Y / TargetBoxHeight

最终
转换TargetBox的局部坐标系)

  

Cavnas.TranslatePoint(CalculatedPoint,TargetBox)

修改
我以上述方式解决了。

扩展方法

    public static Point GetCenterPoint(this UIElement item, UIElement target)
    {
        return item.TranslatePoint(
                    new Point(item.Width * item.RenderTransformOrigin.X, item.Height * item.RenderTransformOrigin.Y), target);
    }

    public static Point GetRenderTransformOrigin(this Point p, double h, double w)
    {
        return new Point(p.X / w, p.Y / h);
    }


的使用
RenderTransformOrigin = GetCenterPoint(BaseItem).GetRenderTransformOrigin(ChildItem.Height, ChildItem.Width);

,但....

当我改变' RenderTransformOrigin'这个旋转和位置改变了....

旋转完成后, 找到一种方法来保持旋转对象没有RotateTransform。

帮助我。

你知道吗。

0 个答案:

没有答案