/// <summary> /// 合并 /// </summary> public void Combine() { if (_selectedObjs.Count > 1) { //需要排序,否则绘图的先后顺序会发生改变 int[] indexA = new int[_selectedObjs.Count]; for (int i = 0; i < indexA.Length; i++) { indexA[i] = Objs.IndexOf(_selectedObjs[i]); } Array.Sort(indexA); DrawCombine draw = new DrawCombine(_selectedObjs) { Parant = Container }; _nameManager.CreateName(draw); draw.Layer = DefaultLayer; draw.LoadInitializationEvent(); foreach (IDrawObj obj in _selectedObjs) { Objs.Remove(obj); } Objs.Insert(indexA[0], draw); _selectedObjs.Clear(); if (draw.CanSelect()) { _selectedObjs.Add(draw); } _controlPoint.ChangeSelectObj(_selectedObjs); Container.Invalidate(); } }
public IDrawObj CreateDrawObj(DrawType type) { //todo add control IDrawObj obj; switch (type) { case DrawType.Group: obj = new DrawGroup(); break; case DrawType.Combine: obj = new DrawCombine(); break; case DrawType.Rect: obj = new DrawRect(); break; case DrawType.Ellipse: obj = new DrawEllipse(); break; case DrawType.Text: obj = new DrawText(); break; case DrawType.StraightLine: obj = new DrawStraightLine(); break; case DrawType.FoldLine: obj = new DrawFoldLine(); break; case DrawType.Bezier: obj = new DrawBezier(); break; case DrawType.Polygon: obj = new DrawPolygon(); break; case DrawType.ClosedBezier: obj = new DrawClosedBezier(); break; default: return(null); } return(obj); }