/*  sharecodes.org 友情提醒:尊重知识,转载请注明原创作者、出处!
*/  /// <summary>
/// C# GDI+ 绘制圆角矩形
/// </summary>
/// <param name="g">Graphics 对象</param>
/// <param name="rectangle">Rectangle 对象,圆角矩形区域</param>
/// <param name="borderColor">边框颜色</param>
/// <param name="borderWidth">边框宽度</param>
/// <param name="r">圆角半径</param>
public static void DrawRoundRectangle(Graphics g, Rectangle rectangle, Color borderColor, float borderWidth, int r)
{   // 如要使边缘平滑,请取消下行的注释   // g.SmoothingMode = SmoothingMode.HighQuality;   // 由于边框也需要一定宽度,需要对矩形进行修正   rectangle = new Rectangle(rectangle.X, rectangle.Y, rectangle.Width - 1, rectangle.Height - 1);   Pen p = new Pen(borderColor, borderWidth);   // 调用 getRoundRectangle 得到圆角矩形的路径,然后再进行绘制   g.DrawPath(p, getRoundRectangle(rectangle, r));
}   /// <summary>
/// 根据普通矩形得到圆角矩形的路径
/// </summary>
/// <param name="rectangle">原始矩形</param>
/// <param name="r">半径</param>
/// <returns>图形路径</returns>
private static GraphicsPath getRoundRectangle(Rectangle rectangle, int r)
{   int l = 2 * r;   // 把圆角矩形分成八段直线、弧的组合,依次加到路径中   GraphicsPath gp = new GraphicsPath();   gp.AddLine(new Point(rectangle.X + r, rectangle.Y), new Point(rectangle.Right - r, rectangle.Y));   gp.AddArc(new Rectangle(rectangle.Right - l, rectangle.Y, l, l), 270F, 90F);   gp.AddLine(new Point(rectangle.Right, rectangle.Y + r), new Point(rectangle.Right, rectangle.Bottom - r));   gp.AddArc(new Rectangle(rectangle.Right - l, rectangle.Bottom - l, l, l), 0F, 90F);   gp.AddLine(new Point(rectangle.Right - r, rectangle.Bottom), new Point(rectangle.X + r, rectangle.Bottom));   gp.AddArc(new Rectangle(rectangle.X, rectangle.Bottom - l, l, l), 90F, 90F);   gp.AddLine(new Point(rectangle.X, rectangle.Bottom - r), new Point(rectangle.X, rectangle.Y + r));   gp.AddArc(new Rectangle(rectangle.X, rectangle.Y, l, l), 180F, 90F);   return gp;
}
/*  sharecodes.org 友情提醒:尊重知识,转载请注明原创作者、出处!
*/  // 在 Form 上放置一 Panel,命名为 panel1,调用绘图方法
DrawRoundRectangle(panel1.CreateGraphics(), new Rectangle(10, 10, 100, 80), ColorTranslator.FromHtml("#CCFF66"), 4F, 20);
DrawRoundRectangle(panel1.CreateGraphics(), new Rectangle(120, 10, 100, 80), ColorTranslator.FromHtml("#FF66FF"), 4F, 20);
DrawRoundRectangle(panel1.CreateGraphics(), new Rectangle(240, 10, 100, 80), ColorTranslator.FromHtml("#6699FF"), 4F, 20);


												

绘制圆角矩形(方法 )相关推荐

  1. php 绘制圆角矩形,快速绘制圆角矩形的三种方法 - 行业动态 - 济南新视觉实训基地-平面UI设计PS培训,室内设计,web前端,影视3D动画后期制作培训...

    圆角矩形可谓是UI设计中,我们最常见到的元素之一了,通过圆角矩形工具去绘制的圆角过于普通,且略显呆板,缺少吸引力.今天新视觉实训就给大家分享三种绘制圆角矩形的方法,让我们在千篇一律的圆角矩形中找寻一些 ...

  2. android绘制圆角矩形

    android中可以绘制圆角矩形. 1.利用画布cavas绘制 如果提供了一个方法可以在画布上绘制圆角矩形: 函数名称:public void drawRoundRect (RectF rect, f ...

  3. JavaScript 使用canvas绘制圆角矩形边框

    目录 分析 完整代码如下 前言 在react项目中需要用到绘制矩形填充, 因为直角矩形不够美观, 需要绘制圆角填充矩形 分析 Canvas并没有提供绘制圆角矩形的方法,但是通过观察,我们可以发现,其实 ...

  4. GDI+绘制圆角矩形

    1.最近,用到GDI+绘图,但是发现没有绘制圆角矩形的函数,故自己写了一个.下面贴出原理和代码,以作备份. 2.要绘制圆角矩形,基础是普通的直角矩形,需要做的就是将直角画成弧形. 3.绘制圆角矩形可以 ...

  5. 咸鱼菌CAD实战—绘制圆角矩形

    咸鱼菌CAD实战-绘制圆角矩形 设计中一般使用圆角使产品看起来更舒服一些,今天我们来绘制一个圆角矩形. 方法如下: 绘制矩形 使用快捷键F,进入倒圆角工具.或者在工具栏中选择倒圆角工具 按R键进入半径 ...

  6. 微信小程序使用canvas绘制圆角矩形在Android:变形、锯齿

    这两天用小程序实现分享生成海报,那我的手机测的一直没问题,结果后来用同事的小米测发现:画的图形缺个角,锯齿形的,根据小程序社区回复:使用ctx.arc + ctx.lineTo就能避免Android错 ...

  7. canvas绘图,绘制圆角矩形。圆角线条。圆形头像

    //绘制圆角矩形 //x.x坐标,y,y轴坐标.width宽 height高  radius圆角(一定不能大于height的一半,否则不显示)   fillColor填充颜色.borderColor线 ...

  8. 在Android中绘制圆角矩形图片

    圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,下面在Android中实现将普通的矩形图片绘制成圆角矩形.        先来看一下普通矩形图片的显示,代码很简单,从r ...

  9. HTML5 JS Canvas利用贝塞尔曲线绘制圆角矩形

    啥也不说,先上示例代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

最新文章

  1. 用composer安装laravel-bjyblog
  2. 辨别 Windows CE, Windows XP Embedded 和 Windows Mobile
  3. 好程序员三期Android高端班开班典礼-乱世看我称雄
  4. python第三方库排行-140种Python标准库、第三方库和外部工具
  5. Vim-复制选中内容至系统剪贴板,光标移动到指定行的行首和行尾
  6. sql中left join后用on还是where
  7. Mysql(三)——(cmd)数据库的命令操作
  8. 自己制作精美的App Store 软件截屏
  9. android 设备连接,Android安卓设备连接Mac的方法
  10. python product函数
  11. vue 音频文件打包后找不到文件
  12. 程序流程图的基本画法大全
  13. Go 编程语言官方文档中文版和官方教程中文版
  14. 需求分析-4 用例分析
  15. hl uoj1841 走格子
  16. 这六大方法,如何让 Transformer 轻松应对高难度长文本序列?
  17. SystemUI原生信号塔替换为五格信号塔
  18. 大数据实战【千亿级数仓】阶段三
  19. 网络安全之手机安全使用手册
  20. 计算机cpu损坏,电脑cpu怎么样会坏掉啊

热门文章

  1. 如何将jpg等格式的图片转化为yuv
  2. android下查看内存阀值限制
  3. ssh报user not allowed because account is locked错误
  4. 工作2年想从实施转开发还来的急吗?
  5. python open报错:‘gbk‘ codec can‘t decode byte 0xbd in position xxxx: illegal multibyte sequence
  6. 哪些情况下会被银行拒贷?买房真的凑齐首付就够了吗?
  7. 基于java的药店药品进销存管理系统
  8. 八门神器java_【修改教程】Java 运算符的说明_八门神器
  9. 创业开公司必备的100个注意事项
  10. 「 C++ 11」std::thread “invalid use of non-static member function“问题处理