private Rectangle GetSplitterOutlineBounds(Point ptMouse)
{
Rectangle rectLimit = this.DragSource.DragLimitBounds;
Rectangle rect = this.RectSplitter;
if (rectLimit.Width <= 0 || rectLimit.Height <= 0)
return rect;
if (this.DragSource.IsVertical)
{
rect.X += ptMouse.X - StartMousePosition.X;
rect.Height = rectLimit.Height;
}
else
{
rect.Y += ptMouse.Y - StartMousePosition.Y;
rect.Width = rectLimit.Width;
}
if (rect.Left < rectLimit.Left)
rect.X = rectLimit.X;
if (rect.Top < rectLimit.Top)
rect.Y = rectLimit.Y;
if (rect.Right > rectLimit.Right)
rect.X -= rect.Right - rectLimit.Right;
if (rect.Bottom > rectLimit.Bottom)
rect.Y -= rect.Bottom - rectLimit.Bottom;
return rect;
}