圆角按钮的实现

实现原理:
- 创建RadiusButton继承自Button,重写OnPaint
- 获取Graphics,创建圆角按钮Outer路径,用BorderColor填充内部区域
- 创建Inner路径,用ButtonColor填充内部区域
- 绘制按钮的Text
- 将按钮扁平化设置,FlatAppearance的Border设置为0
关键代码
创建圆角路径
private GraphicsPath GetRoundedRect(Rectangle rect, int radius)
{
int diameter = 2 * 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;
}
创建内部矩形

最低0.47元/天 解锁文章
2308

被折叠的 条评论
为什么被折叠?



