0

我正在实现拖动行为,并且遇到以下问题。

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

问题是,当我更改对象的 centerX 和 centerY 时,一切都会重新绘制,就像我从未更改过 CenterX 和 CenterY 一样。

Obs:我正在使用 RenderTransform。

不知道我解释的好不好=x。

请帮忙。谢谢。

4

1 回答 1

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

于 2012-07-20T02:12:45.160 回答