C#圆角窗体简单实现方法
简介
在C#中,我们可以使用GDI来实现圆角窗体的效果。通过设置窗体的样式和重绘窗体的边框,我们可以使窗体达到圆角的效果。
实现步骤
- 创建一个继承自
Form
类的新窗体 - 重写窗体的
OnPaint
方法 - 设置窗体的样式为无边框样式
- 通过GDI绘制圆角矩形
代码示例
示例1:绘制圆角矩形
private void DrawRoundRect(Graphics g, Pen pen, float x, float y, float width, float height, float radius)
{
GraphicsPath gp = new GraphicsPath();
gp.AddLine(x + radius, y, x + width - (radius * 2), y);
gp.AddArc(x + width - (radius * 2), y, radius * 2, radius * 2, 270, 90);
gp.AddLine(x + width, y + radius, x + width, y + height - (radius * 2));
gp.AddArc(x + width - (radius * 2), y + height - (radius * 2), radius * 2, radius * 2, 0, 90);
gp.AddLine(x + width - (radius * 2), y + height, x + radius, y + height);
gp.AddArc(x, y + height - (radius * 2), radius * 2, radius * 2, 90, 90);
gp.AddLine(x, y + height - (radius * 2), x, y + radius);
gp.AddArc(x, y, radius * 2, radius * 2, 180, 90);
gp.CloseFigure();
g.DrawPath(pen, gp);
}
示例2:重写窗体的OnPaint
方法实现绘制圆角矩形
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Pen pen = new Pen(Color.FromArgb(0, 0, 0), 2);
DrawRoundRect(e.Graphics, pen, 0, 0, Width, Height, 30);
}
注意事项
- 绘制窗体边框时,不要覆盖窗体的内容区域
- 绘制圆角矩形时,圆角的半径应该小于窗体的宽度和高度的一半
- 应该在窗体加载时就设置好窗体的样式和重绘窗体的边框,以避免窗体闪烁
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#圆角窗体简单实现方法 - Python技术站