Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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;
        }