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