/// <summary>
 /// 根据2个点计算返回Size
 /// </summary>
 /// <param name="StartP"></param>
 /// <param name="EndP"></param>
 /// <returns></returns>
 public static Size PointToSize(Point StartP, Point EndP)
 {
     try
     {
         return(new Size(Math.Abs(StartP.X - EndP.X), Math.Abs(StartP.Y - EndP.Y)));
     }
     catch (Exception ex)
     {
         LoggerHelp.WriteLogger(ex.ToString());
         return(new Size(0, 0));
     }
 }
 /// <summary>
 /// 根据2个点获取一个矩形
 /// </summary>
 /// <param name="left">点1</param>
 /// <param name="right">点2</param>
 /// <returns></returns>
 public static Rect PointToRectangle(Point left, Point right)
 {
     try
     {
         Point RecLeft = new Point(left.X < right.X ? left.X : right.X, left.Y < right.Y ? left.Y : right.Y);
         return(new Rect(RecLeft, PointToSize(left, right)));
     }
     catch (Exception ex)
     {
         LoggerHelp.WriteLogger(ex.ToString());
         return(new Rect());
     }
 }
 /// <summary>
 /// 根据2个矩形获取2个矩形最大的限度的矩形
 /// </summary>
 /// <param name="rct1">矩形1</param>
 /// <param name="rct2">矩形2</param>
 /// <returns>返回一个矩形</returns>
 public static Rect GetOutRectangle(Rect rct1, Rect rct2)
 {
     try
     {
         Rect rct = new Rect();
         rct.X      = rct1.X < rct2.X ? rct1.X : rct2.X;
         rct.Y      = rct1.Y < rct2.Y ? rct1.Y : rct2.Y;
         rct.Width  = rct1.Right > rct2.Right ? rct1.Right - rct.X : rct2.Right - rct.X;
         rct.Height = rct1.Bottom > rct2.Bottom ? rct1.Bottom - rct.Y : rct2.Bottom - rct.Y;
         return(rct);
     }
     catch (Exception ex)
     {
         LoggerHelp.WriteLogger(ex.ToString());
         return(new Rect());
     }
 }