Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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();
            }
        }
Пример #4
0
 public void Load(SerializedCanvas serializedInk)
 {
     _inkManager    = new InkManager();
     _serializedInk = serializedInk;
 }