public static Rectangle Union (Rectangle a, Rectangle b) { var left = Math.Min (a.Left, b.Left); var top = Math.Min (a.Top, b.Top); return new Rectangle (left, top, Math.Max (a.Right, b.Right) - left, Math.Max (a.Bottom, b.Bottom) - top); }