public static string ToSKPathFillType(this SP.PathFillType pathFillType) { switch (pathFillType) { default: case SP.PathFillType.Winding: return("SKPathFillType.Winding"); case SP.PathFillType.EvenOdd: return("SKPathFillType.EvenOdd"); } }
public static IPathGeometry ToPathGeometry(SP.AddPolyPathCommand addPolyPathCommand, SP.PathFillType fillType, bool isFilled, bool isClosed, IFactory factory) { if (addPolyPathCommand.Points == null || addPolyPathCommand.Points.Count < 2) { return(null); } var geometry = factory.CreatePathGeometry( ImmutableArray.Create <IPathFigure>(), fillType == SP.PathFillType.EvenOdd ? FillRule.EvenOdd : FillRule.Nonzero); var context = factory.CreateGeometryContext(geometry); var startX = addPolyPathCommand.Points[0].X; var startY = addPolyPathCommand.Points[0].Y; var startPoint = factory.CreatePointShape(startX, startY); context.BeginFigure(startPoint, false); for (int i = 1; i < addPolyPathCommand.Points.Count; i++) { var x = addPolyPathCommand.Points[i].X; var y = addPolyPathCommand.Points[i].Y; var point = factory.CreatePointShape(x, y); context.LineTo(point); } context.SetClosedState(isClosed); return(geometry); }