diff --git a/DeedyDesigner/Deedy.Activity/Helpers/VisualHelper.cs b/DeedyDesigner/Deedy.Activity/Helpers/VisualHelper.cs index 115a2cd..6154263 100644 --- a/DeedyDesigner/Deedy.Activity/Helpers/VisualHelper.cs +++ b/DeedyDesigner/Deedy.Activity/Helpers/VisualHelper.cs @@ -159,21 +159,22 @@ namespace Deedy.Activity.Helpers /// 如果解析成功则返回「Geometry」对象 public static Geometry? Help_ParseAsGeometry(this string geometryString) => TypeDescriptor.GetConverter(typeof(Geometry)).ConvertFromString(geometryString) as Geometry; /// - /// 对一个矢量图形进行连续的「缩放」、「平移」到一个「Rectangle」后再以图形中心点为中心沿顺时针旋转指定角度 + /// 以图形中心点为中心沿顺时针旋转指定角度;再对一个矢量图形进行连续的「缩放」、「平移」到一个「Rectangle」 /// /// 要进行映射的矢量图形 /// 目标位置 /// 旋转角度 /// 克隆平移后的新矢量图形 - public static Geometry Help_MappingToBounds(this Geometry geometry, Rect rectangle, double angle) + public static Geometry Help_MappingToBounds(this Geometry geometry, double angle, Rect rectangle) { Geometry newGeometry = geometry.Clone(); newGeometry.Transform = new TransformGroup { Children = { - new ScaleTransform(rectangle.Width/ newGeometry.Bounds.Width, rectangle.Height/newGeometry.Bounds.Height), // 宽度放大2倍,高度放大1.5倍 - new TranslateTransform(rectangle.Left-newGeometry.Bounds.Left, rectangle.Top-newGeometry.Bounds.Top), // X/Y方向位移 - new RotateTransform(angle,rectangle.Width/2,rectangle.Height/2) // 顺时针旋转90度 + new RotateTransform(angle,newGeometry.Bounds.Left + newGeometry.Bounds.Width/2, + newGeometry.Bounds.Top + newGeometry.Bounds.Height/2), // 顺时针旋转90度 + new ScaleTransform(rectangle.Width/newGeometry.Bounds.Width, rectangle.Height/newGeometry.Bounds.Height), // 宽度放大2倍,高度放大1.5倍 + new TranslateTransform(rectangle.Left-newGeometry.Bounds.Left, rectangle.Top-newGeometry.Bounds.Top), // X/Y方向位移 } }; return newGeometry;