#region 圆角 public void SetWindowRegion() { GraphicsPath FormPath; Rectangle rect = new Rectangle(0, 0, this.Width, this.Height); FormPath = GetRoundedRectPath(rect, 16); this.Region = new Region(FormPath); } /// <summary> /// 绘制圆角路径 /// </summary> /// <param name="rect"></param> /// <param name="radius"></param> /// <returns></returns> private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius) { int diameter = radius; Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter)); GraphicsPath path = new GraphicsPath(); // 左上角 path.AddArc(arcRect, 180, 90); // 右上角 arcRect.X = rect.Right - diameter; path.AddArc(arcRect, 270, 90); // 右下角 arcRect.Y = rect.Bottom - diameter; path.AddArc(arcRect, 0, 90); // 左下角 arcRect.X = rect.Left; path.AddArc(arcRect, 90, 90); path.CloseFigure();//闭合曲线 return path; } #endregion
实现过程:
-
左上角(
180, 90
)AddArc
方法的第一个参数是一个矩形框,指定了圆弧的边界。第二个参数表示从当前起始角度(这里是 180°)开始,第三个参数指定了绘制的角度(这里是 90°)。- 180°:从水平的左边界向上开始绘制。
- 90°:表示沿顺时针方向绘制一个四分之一圆的弧。
-
右上角(
270, 90
)
第二个角度参数是 270°,表示从右上角的水平线开始,顺时针绘制一个四分之一圆的弧。- 270°:从右上角水平线的底边开始。
- 90°:同样是顺时针方向绘制四分之一圆的弧。
-
右下角(
0, 90
)
第三个角度参数是 0°,表示从右下角的水平线开始,继续绘制下一个四分之一圆的弧。- 0°:从右下角的底边开始。
- 90°:顺时针方向绘制四分之一圆。
-
左下角(
90, 90
)
最后一个角度参数是 90°,表示从左下角的水平线开始,绘制完最后一个四分之一圆的弧。- 90°:从左下角的底边开始。
- 90°:顺时针方向绘制四分之一圆。