private static Stroke DataToStroke(StrokeData data, System.Windows.Size size) { Stroke stroke = null; switch (data.Type) { case StrokeTypes.Arrow: stroke = new ArrowStroke(StrokeDataEx.ToStylusPoints(data.Points, size)); break; case StrokeTypes.Circle: CircleStroke cs = new CircleStroke(StrokeDataEx.ToStylusPoints(data.Points, size)); stroke = cs; break; case StrokeTypes.Line: stroke = new StraightStroke(StrokeDataEx.ToStylusPoints(data.Points, size)); break; case StrokeTypes.Rectangle: stroke = new RectangleStroke(StrokeDataEx.ToStylusPoints(data.Points, size)); break; case StrokeTypes.Triangle: stroke = new TriangleStroke(StrokeDataEx.ToStylusPoints(data.Points, size)); break; default: stroke = new Stroke(StrokeDataEx.ToStylusPoints(data.Points, size)); break; } StrokeEx.SetID(stroke, data.ID); stroke.DrawingAttributes = DrawingAttributesDataEx.ToDrawingAttributes(data.Atts); if (stroke is ShapeStroke) { stroke.DrawingAttributes.FitToCurve = false; } return(stroke); }