Example #1
0
        /// <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();
            }
        }
Example #2
0
        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);
        }