C#画圆角矩形的方法

 更新时间:2015年05月08日 15:18:10   作者:xujh  
这篇文章主要介绍了C#画圆角矩形的方法,涉及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#程序设计有所帮助。

相关文章

  • C#开发Winform控件之打开文件对话框OpenFileDialog类

    C#开发Winform控件之打开文件对话框OpenFileDialog类

    这篇文章介绍了C#开发Winform控件之打开文件对话框OpenFileDialog类,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • C# WebApi+Webrtc局域网音视频通话实例

    C# WebApi+Webrtc局域网音视频通话实例

    这篇文章主要为大家详细介绍了C# WebApi+Webrtc局域网音视频通话实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C#实现的简单链表类实例

    C#实现的简单链表类实例

    这篇文章主要介绍了C#实现的简单链表类,涉及C#针对链表的定义、实现及链表节点的增加、删除与修改技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • timespan使用方法详解

    timespan使用方法详解

    TimeSpan是用来表示一个时间段的实例,两个时间的差可以构成一个TimeSpan实例,现在就来介绍一下使用方法
    2014-04-04
  • c# 通过内存映射实现文件共享内存的示例代码

    c# 通过内存映射实现文件共享内存的示例代码

    这篇文章主要介绍了c# 通过内存映射实现文件共享内存的示例代码,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C#匿名函数和匿名方法的使用

    C#匿名函数和匿名方法的使用

    本文主要介绍了C#匿名函数和匿名方法的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • 探究C#访问null字段会抛异常原因

    探究C#访问null字段会抛异常原因

    本文主要介绍了探究C#访问null字段会抛异常原因,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • C#观察者模式(Observer Pattern)实例教程

    C#观察者模式(Observer Pattern)实例教程

    这篇文章主要介绍了C#观察者模式(Observer Pattern),主要以一个实例的形式讲述了C#观察者模式的实现过程,详细讲述了接口的定义、通知及动作的实现方法,需要的朋友可以参考下
    2014-09-09
  • C#中的let字句应用示例

    C#中的let字句应用示例

    这篇文章主要给大家介绍了C#中的let字句,文中通过应用实例介绍的很详细,相信对大家具有一定的参考价值,有需要的朋友们下面来一起看看吧。
    2017-02-02
  • C#串口连接的读取和发送详解

    C#串口连接的读取和发送详解

    这篇文章主要给大家介绍了关于C#串口连接的读取和发送的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论