C# 更改centerX和centerY后如何保持变换?

C# 更改centerX和centerY后如何保持变换?,c#,.net,wpf,C#,.net,Wpf,我正在实现一个拖动行为,我有以下问题 我首先缩放一个中心x和中心y等于0的矩形。然后,我在运行时将CenterX和CenterY更改为矩形的右上角,以向左缩放 问题是,当我更改对象的centerX和centerY时,所有内容都会重新绘制,就像我从未更改过centerX和centerY一样 Obs:我正在使用RenderTransform 我不知道我是否解释得很好 请帮忙。谢谢。没有代码是很难帮助的。不过我还是会试试的 您可以尝试使用转换矩阵获得“真实结果”。例如: Point d

我正在实现一个拖动行为,我有以下问题

我首先缩放一个中心x和中心y等于0的矩形。然后,我在运行时将CenterX和CenterY更改为矩形的右上角,以向左缩放

问题是,当我更改对象的centerX和centerY时,所有内容都会重新绘制,就像我从未更改过centerX和centerY一样

Obs:我正在使用RenderTransform

我不知道我是否解释得很好


请帮忙。谢谢。

没有代码是很难帮助的。不过我还是会试试的

您可以尝试使用转换矩阵获得“真实结果”。例如:

        Point dragDelta = new Point(e.HorizontalChange, e.VerticalChange);

        Matrix toCalculate = ((visualComponent as FrameworkElement).RenderTransform).Value;
        dragDelta = toCalculate.Transform(dragDelta);

        myData.X += dragDelta.X;
        myData.Y += dragDelta.Y;

有很多方法可以做到这一点。我并不特别喜欢使用翻译转换。理想的做法是使用拇指,并通过使用模板设置样式。这应该会对您有所帮助:

创建一个只做您所说内容的示例应用程序,并发布xaml和代码,这样我们就可以更容易地帮助您找到答案。