public FigureGeometry(PathFigure figure, double strokeThickness) { this.Lines = figure.AsLines(); var offsetLines1 = CreateOffsetLines(this.Lines, -strokeThickness / 2); var offsetLines2 = CreateOffsetLines(this.Lines, strokeThickness / 2); var pathGeometries = new PathGeometry[this.Lines.Count]; for (var i = 0; i < this.Lines.Count; i++) { var o1 = offsetLines1[i]; var o2 = offsetLines2[i]; pathGeometries[i] = CreatePath(o1, o2); } this.PathGeometries = pathGeometries; this.TotalLength = figure.TotalLength(); this.Brushes = new Brush[this.Lines.Count]; }