private void ToGeometryDrawing(IBaseShape shape, StringBuilder sb, IPathConverter converter) { if (shape is IGroupShape group) { foreach (var child in group.Shapes) { ToGeometryDrawing(child, sb, converter); } return; } if (shape.IsFilled) { var path = converter.ToFillPathShape(shape); if (path != null) { var geometry = path.Geometry.ToXamlString(); var brush = (shape.Style.Fill as IArgbColor).ToXamlString(); sb.AppendLine($" <GeometryDrawing Brush=\"{brush}\" Geometry=\"{geometry}\"/>"); } } if (shape.IsStroked) { var path = converter.ToStrokePathShape(shape); if (path != null) { var geometry = path.Geometry.ToXamlString(); var brush = (shape.Style.Stroke as IArgbColor).ToXamlString(); sb.AppendLine($" <GeometryDrawing Brush=\"{brush}\" Geometry=\"{geometry}\"/>"); } } }
private void ToGeometryDrawing(IBaseShape shape, StringBuilder sb, IPathConverter converter) { if (shape is IGroupShape group) { foreach (var child in group.Shapes) { ToGeometryDrawing(child, sb, converter); } return; } if (shape.IsFilled) { var path = converter.ToFillPathShape(shape); if (path != null) { var geometry = path.Geometry.ToSvgString(); var brush = (shape.Style.Fill as IArgbColor).ToSvgString(); var fillRule = path.Geometry.FillRule == FillRule.Nonzero ? "nonzero" : "evenodd"; sb.AppendLine($" <path fill=\"{brush}\" fill-rule=\"{fillRule}\" d=\"{geometry}\"/>"); } } if (shape.IsStroked) { var path = converter.ToStrokePathShape(shape); if (path != null) { var geometry = path.Geometry.ToSvgString(); var brush = (shape.Style.Stroke as IArgbColor).ToSvgString(); var fillRule = path.Geometry.FillRule == FillRule.Nonzero ? "nonzero" : "evenodd"; sb.AppendLine($" <path fill=\"{brush}\" fill-rule=\"{fillRule}\" d=\"{geometry}\"/>"); } } }
private void ToGeometryDrawing(BaseShapeViewModel shape, StringBuilder sb, IPathConverter converter) { if (shape is GroupShapeViewModel group) { foreach (var child in group.Shapes) { ToGeometryDrawing(child, sb, converter); } return; } if (shape.IsFilled) { var path = converter.ToFillPathShape(shape); if (path is { })