C#画圆角矩形的方法
本文实例讲述了C#画圆角矩形的方法。分享给大家供大家参考。具体实现方法如下:
protected void Page_Load(object sender, EventArgs e)
{
Bitmap bm = new Bitmap(800, 600);
Graphics g = Graphics.FromImage(bm);
g.FillRectangle(Brushes.White,new Rectangle(0,0,800,600));
FillRoundRectangle(g,Brushes.Plum,new Rectangle(100, 100, 100, 100), 8);
DrawRoundRectangle(g, Pens.Yellow,new Rectangle(100, 100, 100, 100), 8);
bm.Save(Response.OutputStream, ImageFormat.Jpeg);
g.Dispose();
bm.Dispose();
}
public static void DrawRoundRectangle(Graphics g,Pen pen,Rectangle rect, int cornerRadius)
{
using (GraphicsPath path = CreateRoundedRectanglePath(rect, cornerRadius))
{
g.DrawPath(pen, path);
}
}
public static void FillRoundRectangle(Graphics g, Brush brush,Rectangle rect, int cornerRadius)
{
using (GraphicsPath path = CreateRoundedRectanglePath(rect, cornerRadius))
{
g.FillPath(brush, path);
}
}
internal static GraphicsPath CreateRoundedRectanglePath(Rectangle rect, int cornerRadius)
{
GraphicsPath roundedRect = new GraphicsPath();
roundedRect.AddArc(rect.X, rect.Y, cornerRadius * 2, cornerRadius * 2, 180, 90);
roundedRect.AddLine(rect.X + cornerRadius, rect.Y, rect.Right - cornerRadius * 2, rect.Y);
roundedRect.AddArc(rect.X + rect.Width - cornerRadius * 2, rect.Y, cornerRadius * 2, cornerRadius * 2, 270, 90);
roundedRect.AddLine(rect.Right, rect.Y + cornerRadius * 2, rect.Right, rect.Y + rect.Height - cornerRadius * 2);
roundedRect.AddArc(rect.X + rect.Width - cornerRadius * 2, rect.Y + rect.Height - cornerRadius * 2, cornerRadius * 2, cornerRadius * 2, 0, 90);
roundedRect.AddLine(rect.Right - cornerRadius * 2, rect.Bottom, rect.X + cornerRadius * 2, rect.Bottom);
roundedRect.AddArc(rect.X, rect.Bottom - cornerRadius * 2, cornerRadius * 2, cornerRadius * 2, 90, 90);
roundedRect.AddLine(rect.X, rect.Bottom - cornerRadius * 2, rect.X, rect.Y + cornerRadius * 2);
roundedRect.CloseFigure();
return roundedRect;
}
希望本文所述对大家的C#程序设计有所帮助。相关阅读:
通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
MAC怎么更改iTunes中的视频类型以便顺利播放
基于php缓存的详解
Mybatis与Hibernate的区别
Win10系统更新报错800706d9程序无法运行怎么办?
Win7系统使用组策略禁止陌生人安装软件的方法图文教程
Android源码学习之工厂方法模式应用及优势介绍
os x 10.11 el capitan系统安装图文教程
jQuery处理json数据返回数组和输出的方法
Win8浏览器打开网页总是未响应怎么办?如何解决?
js闭包引起的事件注册问题介绍
Java获取mac地址的方法
微软官方博客正式公布24小时Win10安装量:已超1400万台
浅析JavaScript中的CSS属性及命名规范