예제 #1
0
        protected override void OnDragStart(MouseEventArgs args)
        {
            base.OnDragStart(args);

            _dragging = true;

            _rectangleDrag = new RectangleDrag();
            _bounds        = Control.Bounds;

            using (DesktopGraphics graphics = new DesktopGraphics())
            {
                _rectangleDrag.Start(GetScreenRectangle(_bounds), graphics);
            }

            _flags = GetDirectionFlags(GetDragDirection(args.Location));
        }
예제 #2
0
        private DragDirectionFlags GetDirectionFlags(DragDirection direction)
        {
            DragDirectionFlags flags = DragDirectionFlags.None;

            switch (direction)
            {
            case DragDirection.None:
                break;

            case DragDirection.NorthWest:
                flags = DragDirectionFlags.North | DragDirectionFlags.West;
                break;

            case DragDirection.North:
                flags = DragDirectionFlags.North;
                break;

            case DragDirection.NorthEast:
                flags = DragDirectionFlags.North | DragDirectionFlags.East;
                break;

            case DragDirection.East:
                flags = DragDirectionFlags.East;
                break;

            case DragDirection.SouthEast:
                flags = DragDirectionFlags.South | DragDirectionFlags.East;
                break;

            case DragDirection.South:
                flags = DragDirectionFlags.South;
                break;

            case DragDirection.SouthWest:
                flags = DragDirectionFlags.South | DragDirectionFlags.West;
                break;

            case DragDirection.West:
                flags = DragDirectionFlags.West;
                break;

            default:
                break;
            }

            return(flags);
        }