我正在实现拖动行为,并且遇到以下问题。
我首先缩放一个CenterX 和CenterY 等于0 的矩形。然后,我在运行时将CenterX 和CenterY 更改为矩形的右上角以缩放到左侧。
问题是,当我更改对象的 centerX 和 centerY 时,一切都会重新绘制,就像我从未更改过 CenterX 和 CenterY 一样。
Obs:我正在使用 RenderTransform。
不知道我解释的好不好=x。
请帮忙。谢谢。
没有代码很难提供帮助。但无论如何我都会尝试。
您可以尝试使用转换矩阵来获得“真实结果”。例子:
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