public static GraphicsPath CreateRoundedRectanglePath(this Rectangle rect, int radius, UICornerRadiusSides radiusSides, int lineSize = 1) { GraphicsPath path; if (radiusSides == UICornerRadiusSides.None || radius == 0) { path = rect.GraphicsPath(); } else { //IsRadius为True时,显示左上圆角 bool RadiusLeftTop = radiusSides.GetValue(UICornerRadiusSides.LeftTop); //IsRadius为True时,显示左下圆角 bool RadiusLeftBottom = radiusSides.GetValue(UICornerRadiusSides.LeftBottom); //IsRadius为True时,显示右上圆角 bool RadiusRightTop = radiusSides.GetValue(UICornerRadiusSides.RightTop); //IsRadius为True时,显示右下圆角 bool RadiusRightBottom = radiusSides.GetValue(UICornerRadiusSides.RightBottom); path = rect.CreateRoundedRectanglePath(radius, RadiusLeftTop, RadiusRightTop, RadiusRightBottom, RadiusLeftBottom, lineSize); } return(path); }
public static GraphicsPath CreateRoundedRectanglePath(this Rectangle rect, int radius, UICornerRadiusSides radiusSides) { GraphicsPath path; if (radiusSides == UICornerRadiusSides.None || radius == 0) { Point[] points = new Point[] { new Point(0, 0), new Point(rect.Width, 0), new Point(rect.Width, rect.Height), new Point(0, rect.Height), new Point(0, 0), }; path = points.Path(); } else { //IsRadius为True时,显示左上圆角 bool RadiusLeftTop = radiusSides.GetValue(UICornerRadiusSides.LeftTop); //IsRadius为True时,显示左下圆角 bool RadiusLeftBottom = radiusSides.GetValue(UICornerRadiusSides.LeftBottom); //IsRadius为True时,显示右上圆角 bool RadiusRightTop = radiusSides.GetValue(UICornerRadiusSides.RightTop); //IsRadius为True时,显示右下圆角 bool RadiusRightBottom = radiusSides.GetValue(UICornerRadiusSides.RightBottom); path = rect.CreateRoundedRectanglePath(radius, RadiusLeftTop, RadiusRightTop, RadiusRightBottom, RadiusLeftBottom); } return(path); }