更改centerX和centerY后如何保持转换?

时间:2012-07-19 15:41:22

标签: c# .net wpf

我正在实施拖拽行为,我遇到了以下问题。

我首先缩放一个矩阵,其中CenterX和CenterY等于0.然后,我将运行时的CenterX和CenterY更改为矩形的右上角以缩放到左侧。

问题是,当我更改对象的centerX和centerY时,重绘了everthing,就像我从未更改过CenterX和CenterY一样。

Obs:我正在使用RenderTransform。

我不知道我是否解释得好= x。

请帮忙。感谢。

1 个答案:

答案 0 :(得分:0)

没有代码很难帮助。但无论如何我都会尝试。

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

        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;

有很多方法可以做到这一点。我不是特别喜欢使用翻译变换。理想的是使用拇指并使用模板通过样式设置。这可以帮助您:http://www.codeproject.com/Articles/148503/Simple-Drag-Selection-in-WPF