I use Region for finding intersection of two paths (which created from two polygons).
GraphicsPath gp1 = new GraphicsPath();
gp1.AddPolygon(P);//P - array of points [first polygon]
Region d = new Region(gp1);
GraphicsPath gp2 = new GraphicsPath();
gp2.AddPolygon(P_);//P_ - array of points [second polygon]
d.Intersect(gp2);//founded intersection
How I can get points of intersection of Region d ?