後臺給WPF的Path.Data賦值方法:
第一種,直接轉換類型
var converter = TypeDescriptor.GetConverter(typeof(Geometry));
path.Data = (Geometry)(converter.ConvertFrom("M 0,25 C 25,-30 30,80 60,25"));
第二種,Path.Data其實就是Geometry類,裏面包含着Segment類
所以可以直接新建Segment
例如
貝塞爾曲線 BezierSegment
弧線 ArcSegment
此處以圓弧爲例:
可參照我畫圓弧的博客 https://blog.csdn.net/shaynerain/article/details/105105253
ArcSegment arcSegment = new ArcSegment(new Point(width / 2d + (width / 2d - 5) * Math.Sin(0.001),
height / 2d + (height / 2d - 5) * Math.Cos(0.001)),
new Size(width / 2 - 5, height / 2 - 5), 0,
true, SweepDirection.Clockwise, true);
PathSegmentCollection pathSegments = new PathSegmentCollection();
pathSegments.Add(arcSegment);
PathFigure pathFigure = new PathFigure(new Point(width / 2, height - 5), pathSegments, false);
PathFigureCollection pathFigures = new PathFigureCollection();
pathFigures.Add(pathFigure);
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures = pathFigures;
cycleProcessBackgound.Data = pathGeometry;