他のコントロールの「RenderTransformOrigin」基準を計算したい。私は英語が苦手なので、この画像を見てください。
同じレベルに配置されたボックスがあります。子供ではなく、親ではありません。緑色のボックスは、理論的には親です。したがって、すべてのコントロールの RenderTransformOrigin は緑色のボックスと同じ場所にあります。しかし、RenderTransformOrigin はローカル座標系だと思います。
RenderTransformOriginを計算したい...
ありがとうございます
編集 私は現在この方法で試しています....
中心点 (ローカル座標系?)
ItemHeight * CriteriaItem.OriginY
ItemWidth * CriteriaItem.OriginX
計算 (中心点は結果の上にあります)
CenterPoint.X / TargetBoxWidth CenterPoint.Y
/ TargetBoxHeight
Final
Convert 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 を使用せずに回転オブジェクトを保持する方法を見つけます。
助けて。
ありがとうございます。