/// <summary>
        /// 绘制边框
        /// </summary>
        /// <param name="graphics">GDI+ 绘图图面</param>
        /// <param name="rect">存储一组整数,共四个,表示一个矩形的位置和大小</param>
        /// <param name="roundStyle">圆角的样式</param>
        /// <param name="radius">圆角弧度大小</param>
        /// <param name="borderColor">边框颜色</param>
        public static void DrawBorder(Graphics graphics, Rectangle rect, AuroraRoundStyle roundStyle, int radius, Color borderColor)
        {
            if (rect.Width <= 0 || rect.Height <= 0 || graphics == null)
            {
                return;
            }

            rect.Width  -= 2;
            rect.Height -= 2;
            using (GraphicsPath path = CreateGraphicsPath(rect, radius, roundStyle, false))
            {
                using (Pen pen = new Pen(borderColor))
                {
                    graphics.DrawPath(pen, path);
                }
            }
        }
        /// <summary>
        /// 创建指定样式的GraphicsPath
        /// </summary>
        /// <param name="rect">存储一组整数,共四个,表示一个矩形的位置和大小</param>
        /// <param name="radius">圆角弧度大小</param>
        /// <param name="roundStyle">圆角的样式</param>
        /// <param name="correction">是否把矩形长宽减 1,以便画出边框</param>
        /// <returns>建立的路径</returns>
        public static GraphicsPath CreateGraphicsPath(Rectangle rect, int radius, AuroraRoundStyle roundStyle, bool correction = true)
        {
            GraphicsPath path             = new GraphicsPath();
            int          radiusCorrection = correction ? 1 : 0;

            switch (roundStyle)
            {
            case AuroraRoundStyle.None:
                path.AddRectangle(rect);
                break;

            case AuroraRoundStyle.All:
                path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
                path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
                break;

            case AuroraRoundStyle.Left:
                path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
                path.AddLine(rect.Right - radiusCorrection, rect.Y, rect.Right - radiusCorrection, rect.Bottom - radiusCorrection);
                path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
                break;

            case AuroraRoundStyle.LeftTop:
                path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
                break;

            case AuroraRoundStyle.LeftBottom:
                path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
                break;

            case AuroraRoundStyle.Right:
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
                path.AddLine(rect.X, rect.Bottom - radiusCorrection, rect.X, rect.Y);
                break;

            case AuroraRoundStyle.RightTop:
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
                break;

            case AuroraRoundStyle.RightBottom:
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
                break;

            case AuroraRoundStyle.Top:
                path.AddArc(rect.X, rect.Y, radius, radius, 180, 90);
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Y, radius, radius, 270, 90);
                path.AddLine(rect.Right - radiusCorrection, rect.Bottom - radiusCorrection, rect.X, rect.Bottom - radiusCorrection);
                break;

            case AuroraRoundStyle.Bottom:
                path.AddArc(rect.Right - radius - radiusCorrection, rect.Bottom - radius - radiusCorrection, radius, radius, 0, 90);
                path.AddArc(rect.X, rect.Bottom - radius - radiusCorrection, radius, radius, 90, 90);
                path.AddLine(rect.X, rect.Y, rect.Right - radiusCorrection, rect.Y);
                break;
            }
            path.CloseFigure(); //这句很关键,缺少会没有左边线。
            return(path);
        }
 /// <summary>
 /// 绘制边框
 /// </summary>
 /// <param name="graphics">GDI+ 绘图图面</param>
 /// <param name="rect">存储一组整数,共四个,表示一个矩形的位置和大小</param>
 /// <param name="roundStyle">圆角的样式</param>
 /// <param name="radius">圆角弧度大小</param>
 public static void DrawBorder(Graphics graphics, Rectangle rect, AuroraRoundStyle roundStyle, int radius)
 {
     DrawBorder(graphics, rect, roundStyle, radius, Color.LightGray);
 }