我想计算' RenderTransformOrigin'其他控制的标准。 请看这张图片,因为我不会说英语。
盒子放在同一水平。不是孩子,不是父母。 绿箱在理论上是父母。 因此,所有控件的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。
帮助我。 你知道吗。