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); }
/// <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)); } } } }
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); }
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); }
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); }