private void OpenFile(string _FilePath) //Loaddata { if (!File.Exists(_FilePath)) { Trace.WriteLine("file not exists " + _FilePath); return; } byte[] _Buffer = File.ReadAllBytes(_FilePath); MemoryStream _MemoryStream = new MemoryStream(_Buffer); _MapDatabase = (MapDatabase)_XmlSerializer.Deserialize(_MemoryStream); _InkCanvas.Strokes.Clear(); InkCanvas.SetLeft(_CStartPos, _MapDatabase._CStartPos.X); InkCanvas.SetTop(_CStartPos, _MapDatabase._CStartPos.Y); InkCanvas.SetLeft(_TStartPos, _MapDatabase._TStartPos.X); InkCanvas.SetTop(_TStartPos, _MapDatabase._TStartPos.Y); for (int i = 0; i < _MapDatabase._Layers.Count; i++) { MapDatabase.Layer _Layer = _MapDatabase._Layers[i]; InkCanvas _InkCanvas1 = (InkCanvas)_CanvasList.Children[i]; foreach (MapDatabase.Image _DImage in _Layer._Images) { Image _Image = new Image(); if (!File.Exists(_DImage.Path)) { Debugger.Break(); } BitmapImage _BitmapImage = new BitmapImage(new Uri(_DImage.Path, UriKind.Relative)); double a = _BitmapImage.Width; _Image.Source = _BitmapImage; _Image.Width = _DImage.Width; _Image.Height = _DImage.Height; InkCanvas.SetLeft(_Image, _DImage.X); InkCanvas.SetTop(_Image, _DImage.Y); _InkCanvas1.Children.Add(_Image); } foreach (MapDatabase.Polygon _Polygon in _Layer._Polygons) { StylusPointCollection _StylusPointCollection = new StylusPointCollection(); foreach (Point _Point in _Polygon._Points) { StylusPoint _StylusPoint = new StylusPoint(_Point.X, _Point.Y); _StylusPointCollection.Add(_StylusPoint); } CustomStroke _Stroke = new CustomStroke(_StylusPointCollection); _Stroke.DrawingAttributes.Color = _Polygon._Color; _InkCanvas1.Strokes.Add(_Stroke); } } }
private List <MapDatabase.Layer> SaveLayers() { List <MapDatabase.Layer> _Layers = new List <MapDatabase.Layer>(); foreach (InkCanvas _InkCanvas in _CanvasList.Children) { MapDatabase.Layer _Layer = new MapDatabase.Layer(); foreach (Image _Image in _InkCanvas.Children.OfType <Image>()) { _Layer._Images.Add(new MapDatabase.Image { Path = ((BitmapImage)_Image.Source).UriSource.OriginalString, X = InkCanvas.GetLeft(_Image), Y = InkCanvas.GetTop(_Image), Width = _Image.ActualWidth, Height = _Image.ActualHeight }); } List <MapDatabase.Polygon> _Polygons = _Layer._Polygons; foreach (CustomStroke _Stroke in _InkCanvas.Strokes) { List <Point> _Points = new List <Point>(); foreach (StylusPoint _StylusPoint in _Stroke.StylusPoints) { Point _Point = new Point(); _Point.X = (int)_StylusPoint.X; _Point.Y = (int)_StylusPoint.Y; _Points.Add(_Point); } MapDatabase.Polygon _Polygon = new MapDatabase.Polygon(); _Polygon._Color = _Stroke.DrawingAttributes.Color; _Polygon._Points = _Points; _Polygons.Add(_Polygon); } _Layers.Add(_Layer); } return(_Layers); }
private List<MapDatabase.Layer> SaveLayers() { List<MapDatabase.Layer> _Layers = new List<MapDatabase.Layer>(); foreach (InkCanvas _InkCanvas in _CanvasList.Children) { MapDatabase.Layer _Layer = new MapDatabase.Layer(); foreach (Image _Image in _InkCanvas.Children.OfType<Image>()) { _Layer._Images.Add(new MapDatabase.Image { Path = ((BitmapImage)_Image.Source).UriSource.OriginalString, X = InkCanvas.GetLeft(_Image), Y = InkCanvas.GetTop(_Image), Width = _Image.ActualWidth, Height = _Image.ActualHeight }); } List<MapDatabase.Polygon> _Polygons = _Layer._Polygons; foreach (CustomStroke _Stroke in _InkCanvas.Strokes) { List<Point> _Points = new List<Point>(); foreach (StylusPoint _StylusPoint in _Stroke.StylusPoints) { Point _Point = new Point(); _Point.X = (int)_StylusPoint.X; _Point.Y = (int)_StylusPoint.Y; _Points.Add(_Point); } MapDatabase.Polygon _Polygon = new MapDatabase.Polygon(); _Polygon._Color = _Stroke.DrawingAttributes.Color; _Polygon._Points = _Points; _Polygons.Add(_Polygon); } _Layers.Add(_Layer); } return _Layers; }