我想计算其他控件的“RenderTransformOrigin”标准。请看这张图片,因为我的英语说得不好。
有盒子放在同一层。不是孩子,不是父母。绿色框理论上是父级。所以所有控件的 RenderTransformOrigin 与绿色框的位置相同。但我认为 RenderTransformOrigin 是本地坐标系。
我想计算 RenderTransformOrigin ...
感谢您
编辑 我目前正在尝试这种方式....
中心点(局部坐标系?)
ItemHeight * CriteriaItem.OriginY
ItemWidth * CriteriaItem.OriginX
计算(中心点在结果之上)
CenterPoint.X / TargetBoxWidth
CenterPoint.Y / TargetBoxHeight
Final
Convert TargetBox的locar坐标系)
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 的情况下保持旋转对象。
帮我。
谢谢你。