我目前正在使用WPF Shapes在画布上创建绘图软件。
我已经创建了一个系统,允许用户使用形状上的透明画布(与形状一起旋转)在画布上移动和旋转形状:
绿色点用于旋转形状,矩形上方的蓝色区域用于移动形状。我想使用我的四个红点重新调整形状的大小。
但是形状是可旋转的,因此角落的坐标并不完全相关于调整形状的大小。在我看来,仅当旋转等于0时,它似乎是相关的,因为左上角可以是180度旋转后的右下角。
现在我正在使用RotateTransform
通过0.5, 0.5
的RenderTransformOrigin
实现旋转。我想避免使用ScaleTransform
,因为我希望保持StrokeThickness
的大小。
所有的红点都是伪可拖动的(使用MouseDown、MouseMove、MouseUp事件)。我使用缓冲点来获取两个鼠标事件之间的X和Y增量。
即使形状被旋转或移动,我如何使用增量来调整形状的大小?