1

他のコントロールの「RenderTransformOrigin」基準を計算したい。私は英語が苦手なので、この画像を見てください。

画像1

同じレベルに配置されたボックスがあります。子供ではなく、親ではありません。緑色のボックスは、理論的には親です。したがって、すべてのコントロールの 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 を使用せずに回転オブジェクトを保持する方法を見つけます。

助けて。

ありがとうございます。

4

0 に答える 0