예제 #1
0
        protected ToolBarDockArea GetClosestArea(Point ptScreen, ToolBarDockArea preferred)
        {
            if (preferred != null)
            {
                Rectangle p = preferred.RectangleToScreen(preferred.ClientRectangle);
                p.Inflate(8, 8);
                if (p.Contains(ptScreen))
                {
                    return(preferred);
                }
            }

            Rectangle l = _left.RectangleToScreen(_left.ClientRectangle);

            l.Inflate(8, 8);
            Rectangle r = _right.RectangleToScreen(_right.ClientRectangle);

            r.Inflate(8, 8);
            Rectangle t = _top.RectangleToScreen(_top.ClientRectangle);

            t.Inflate(8, 8);
            Rectangle b = _bottom.RectangleToScreen(_bottom.ClientRectangle);

            b.Inflate(8, 8);

            if (t.Contains(ptScreen))
            {
                return(_top);
            }
            if (b.Contains(ptScreen))
            {
                return(_bottom);
            }
            if (l.Contains(ptScreen))
            {
                return(_left);
            }
            if (r.Contains(ptScreen))
            {
                return(_right);
            }

            return(null);
        }