text: Q:
  
  Why does Region.IsEmpty() need a Graphics context?
  
  I'm using Region.IsEmpty() to see if two regions intersect, but I really don't understand why I have to provide a Graphics context.
  The  official description says 
  
  The current transformation of the graphics context g is used to compute the region interior on the drawing surface.
  
  What transformation in two dimensions could possibly separate two overlapping regions, or make  a non-empty region empty?
  Is it a question of granularity? Of aliasing vs anti-aliasing?
  
  A:
  
  The Region.IsEmpty(Graphics g) method checks to see if the current graphics context specified as g has any items which occupy the specific region.
  It's not necessarily checking if two regions intersect, but rather whether a region intersections any other items on a drawing surface.  The Graphics instance allows the Region to perform a check on the drawing surface, as this is defined as the Graphics.  In a sense, this method is really like [not working code] g.ContainsElementsWhichIntersect(theRegion).
  
  A:
  
  Regions are a GDI feature and strongly correlated to GDI device contexts.  You can specify a region with floating point numbers, like the constructor that takes a GraphicsPath or a RectangleF.  But the ultimate computations are done with integer precision.  Just good enough for pixel accuracy, no more is needed.
  The mapping from logical coordinates to device coordinates (i.e. pixels) is guided by the setup of the device context.  Which may have a mapping mode other than 1:1.  So a region that's a rectangle of, say, 2.0 x 2.0 may end up empty once it is mapped to pixels.  Check out SetMapMode() for example.
  So do watch for when you intend to use Regions as a general tool, particularly the lack of precision in the result (no better than integer precision) may come as a surprise.
  
  