/// <summary> /// Retrieves the rectangles in which images should be placed in side-by-side mode /// </summary> public static void GetSplitModeImageRectangles(Rectangle clientRectangle, Size maxImageSize, out Rectangle rectangle1, out Rectangle rectangle2) { var halfRectangle = new Rectangle(clientRectangle.X, clientRectangle.Y, clientRectangle.Width / 2, clientRectangle.Height); var imageSize = maxImageSize.ConstrainedTo(halfRectangle.Size); var center1 = halfRectangle.Center(); var center2 = new Point(center1.X + halfRectangle.Width, center1.Y); rectangle1 = new Rectangle(imageSize.CenteredAround(center1), imageSize); rectangle2 = new Rectangle(imageSize.CenteredAround(center2), imageSize); if (rectangle1.X - clientRectangle.X > MIN_BORDER) { int shift = rectangle1.X - clientRectangle.X - MIN_BORDER; rectangle1.X -= shift; rectangle2.X += shift; } }