public SerializedCanvas Save() { // Get the InkStroke objects. IReadOnlyList <InkStroke> inkStrokes = _inkManager.GetStrokes(); SerializedCanvas result = new SerializedCanvas(); foreach (SerializedStroke inkStroke in _serializedInk.Strokes) { result.Add(inkStroke); } // Process each stroke. foreach (InkStroke inkStroke in inkStrokes) { SerializedStroke stroke = new SerializedStroke(); // Get the stroke segments. IReadOnlyList <InkStrokeRenderingSegment> segments; segments = inkStroke.GetRenderingSegments(); // Process each stroke segment. foreach (InkStrokeRenderingSegment segment in segments) { // Copy each ink segment into a bezier segment. BezierSegment bezSegment = new BezierSegment(); bezSegment.Point1 = segment.BezierControlPoint1; bezSegment.Point2 = segment.BezierControlPoint2; bezSegment.Point3 = segment.Position; // Add the bezier segment to the path. stroke.Add(new SerializedStrokeSegment { BezierControlPoint1 = PortablePoint.From <Point>(segment.BezierControlPoint1), BezierControlPoint2 = PortablePoint.From <Point>(segment.BezierControlPoint2), Position = PortablePoint.From <Point>(segment.Position), Pressure = segment.Pressure, }); } result.Add(stroke); } return(result); }
protected async override Task <string> GetContent() { SerializedCanvasCollection result = new SerializedCanvasCollection(); foreach (InkPage page in this.DefaultViewModel["Pages"] as ObservableCollection <InkPage> ) { if (page.Instance != null) { SerializedCanvas ink = page.Instance.Save(); if (ink.Strokes.Count > 0) { result.Add(ink); //Log._Test("Page ", page.PageNumber, " has ", ink.Strokes.Count, " strokes!"); } } } return(PortableConfigHelper.WriteConfig(result)); }
private static void PreloadedInkCallback(DependencyObject d, DependencyPropertyChangedEventArgs e) { InkCanvas instance = d as InkCanvas; SerializedCanvas ink = e.NewValue as SerializedCanvas; if (instance == null) { Log.Error("Error! PreloadedInkCallback: instance == null"); return; } if (ink == null) { Log.Error("Error! PreloadedInkCallback: ink == null"); return; } // load the strokes instance.Load(ink); //Log._Test("instance._serializedInk.Strokes.Count: ", instance._serializedInk.Strokes.Count); //var //SerializerSettings = new JsonSerializerSettings() //{ // ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(), // Converters = { new Newtonsoft.Json.Converters.StringEnumConverter { CamelCaseText = true } }, //}; //var a=JsonConvert.SerializeObject(ink, Formatting.Indented, SerializerSettings); //Log._Test(a); // render the strokes, if the canvas is initialized if (instance.part_Canvas != null) { instance.RenderAllStrokes(); } }
public void Load(SerializedCanvas serializedInk) { _inkManager = new InkManager(); _serializedInk = serializedInk; }