Esempio n. 1
0
        public override PaintResult BeginPaint(PaintContext context, Point beginPoint)
        {
            if (context == null)
            {
                return(null);
            }

            if (_layers == null)
            {
                _layers = new List <LayerBase>();
            }
            else
            {
                _layers.Clear();
            }

            _paintContext = context;

            StartDrag(beginPoint);
            _layers.AddRange(context.OperationLayers);

            PaintResult result = new PaintResult();

            result.PaintLayerType = PaintLayerType.Original;
            result.Layers         = _layers;

            context.OperationLayers.Clear();
            _layers.ForEach(m => context.OperationLayers.Add(m));

            NotifyLayerGroup(context, result);

            return(result);
        }
Esempio n. 2
0
        /// <summary>
        /// 通知图层列表响应
        /// </summary>
        /// <param name="context"></param>
        /// <param name="result"></param>
        private void NotifyLayerGroup(PaintContext context, PaintResult result)
        {
            if (result.PaintLayerType == PaintLayerType.New)
            {
                foreach (var layer in result.Layers)
                {
                    layer.Name = "未命名" + context.HistoryLayerCnt++.ToString();
                    context.LayerGroup.Insert(0, layer);

                    var geometrys = layer.GetGeometries();
                    if (geometrys != null)
                    {
                        geometrys.ForEach(m => context.Canvas.AddChild(m));
                    }
                }
            }
        }
Esempio n. 3
0
        private void Container_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            if (Service.PaintContext.ToolType == ToolType.None)
            {
                return;
            }

            CvsRoot.ClipToBounds = false;
            _leftButtonPressed   = true;
            PaintResult result = PaintManager.Default.BeginPaint(Service.PaintContext, e.GetPosition(CvsRoot));

            if (result.PaintLayerType == PaintLayerType.New)
            {
                LayerGroup.SelectedIndex = 0;
            }

            Keyboard.ClearFocus();
            Keyboard.Focus(CvsRoot);
        }
Esempio n. 4
0
        public override PaintResult BeginPaint(PaintContext context, Point beginPoint)
        {
            if (context == null)
            {
                return(null);
            }

            if (_layers == null)
            {
                _layers = new List <LayerBase>();
            }
            else
            {
                _layers.Clear();
            }

            _paintContext = context;
            _geometry     = null;
            PaintResult result = new PaintResult();
            SimpleLayer layer  = new SimpleLayer();

            result.PaintLayerType = PaintLayerType.New;
            _geometry             = new Circle(new CircleStyle()
            {
                FirstPoint  = beginPoint,
                SecondPoint = beginPoint,
                LineBrush   = (context.PaintTool as CircleTool).LineBrush,
                FillBrush   = (context.PaintTool as CircleTool).FillBrush,
                LineWidth   = (context.PaintTool as CircleTool).LineWidth
            }, new CircleAction());

            layer.AddGeometry(_geometry);
            _layers.Add(layer);
            result.Layers = _layers;

            context.OperationLayers.Clear();
            _layers.ForEach(m => context.OperationLayers.Add(m));

            NotifyLayerGroup(context, result);

            return(result);
        }
Esempio n. 5
0
        public override PaintResult BeginPaint(PaintContext context, Point beginPoint)
        {
            if (context == null)
            {
                return(null);
            }

            if (_layers == null)
            {
                _layers = new List <LayerBase>();
            }
            else
            {
                _layers.Clear();
            }

            _paintContext = context;
            PaintResult result = new PaintResult();

            result.PaintLayerType = PaintLayerType.New;

            SimpleLayer layer = new SimpleLayer();

            _geometry = new Text(new TextStyle()
            {
                FirstPoint  = beginPoint,
                SecondPoint = beginPoint,
                Font        = (context.PaintTool as TextTool).Font,
                Foreground  = (context.PaintTool as TextTool).Foreground,
            }, new TextAction());

            layer.AddGeometry(_geometry);
            _layers.Add(layer);
            result.Layers = _layers;

            context.OperationLayers.Clear();
            _layers.ForEach(m => context.OperationLayers.Add(m));

            NotifyLayerGroup(context, result);

            return(result);
        }