using (Graphics g = this.CreateGraphics())
{
GraphicsPath path = new GraphicsPath();
path.AddPolygon(new Point[] { new Point(0, 0), new Point(30, 30), new Point(70, 70), new Point(20, 90) });
Region region = new System.Drawing.Region(path);
GraphicsPath path1 = new GraphicsPath();
path1.AddPolygon(new Point[] { new Point(300, 300), new Point(700, 700), new Point(600, 900), new Point(300, 600) });
Region region1 = new System.Drawing.Region(path1);
region.Intersect(region1);
var rect = region.GetBounds(g);