CSharp代码示例每日一讲,为刚刚学习编程的人准备,利用最简单的代码介绍CSharp编程知识!

画笔和画刷是图形应用中最常用的两种对象。笔用于绘制图形对象的轮廓,如线条和曲线;刷子是用来填充图形对象的内部区域(例如,填充矩形或椭圆形)。在本文中,我们将讨论如何创建和使用各种类型的画刷和画笔。

我们首先讨论画刷、画笔的类型,它们的方法和属性,以及如何在GDI+中创建和使用它们。

GDI+提供Pen和Pens 类来表示和描述画笔。在本文中,我们将讨论如何使用Pen类及其属性创建不同种类的画笔,以及如何使用Pen类的方法。我们还将讨论如何添加 line caps, dash caps, line dash 样式,我们还将讨论笔和笔刷的转换。

SytemPens和system画笔类分别代表系统得画笔和画笔刷。我们也将讨论如何使用这些类来使用系统画笔和画刷。

理解和使用画刷对象

在.NET Framework库中,与brush相关的功能定义在两个名称空间:System.Drawing 和System.Drawing.Drafwing2D。System.Drawing 命名空间中定义和画刷相关的类和功能,System.Drawing.Drawing2D名称空间定义了高级的与brush相关2D的功能。

例如,在System.Drawing 命名空间中定义有SolidBrush类, TextureBrush类, and Brushes类,而2D高级功能的类 HatchBrush 类 、GradientBrush在System.Drawing.Drawing2D中。.

在使用画刷(Brush)之前,显然必须将相应的命名空间包含到应用程序中。或者,您可以使用名称空间作为类的前缀。

下面的代码片段创建一个红色的SolidBrush对象并使用它绘制矩形。此代码写在窗体的paint事件上。第一行获取窗体的绘图对象,第二行使用SolidBrush类创建画笔,后者稍后用于填充矩形。最后一行处理SolidBrush对象。

Graphicsg = e.Graphics;SolidBrushredBrush =newSolidBrush(Color.Red);Rectanglerect =newRectangle(150, 80, 200, 140);g.FillRectangle(redBrush, rect);redBrush.Dispose();

画刷类Brush

在.net框架库中,画刷Brush类是一个抽象类,这意味着如果你不使用它的子类,就不能创建它的实例。所有可用的画刷类都继承自抽象的画刷类。下图显示了可以在GDI+应用程序中使用的所有brush派生类。

应用程序通常需要调用适当的图形类的填充方法,使用画刷来填充GDI+对象(如椭圆、拱形或多边形)。GDI+提供了四种不同的画刷:solid实心, hatch, texture, and gradient。下图显示了画刷类型及其类。

The Brushes 画刷类

brushes类是一个封闭的类(不能继承)。画笔提供了超过140个静态属性,每个属性代表一个带有特定颜色(包括所有标准颜色)的画画刷。例如:Color.Red 代表红色画刷。

创建画刷对象:

SolidBrushredBrush =newSolidBrush(Color.Red);SolidBrushgreenBrush =newgreenBrush(Color.Red);SolidBrushblueBrush =newblueBrush(Color.Red);

SolidBrush只有一个颜色属性,它表示画刷的颜色。

下面代码,使用红色、绿色和蓝色的单色画刷,并分别使用图形类的FillEllipse、FillPie和fill矩形方法填充椭圆、饼图和矩形。

Graphicsg = e.Graphics;//创建Solid画刷对象//使用红色、绿色、蓝色SolidBrushredBrush =newSolidBrush(Color.Red);SolidBrushgreenBrush =newSolidBrush(Color.Green);SolidBrushblueBrush =newSolidBrush(Color.Blue);//使用红色填充ellipseg.FillEllipse(redBrush, 20, 40, 100, 120);//蓝色画刷填充方框Rectanglerect =newRectangle(150, 80, 200, 140);g.FillRectangle(blueBrush, rect);//绿色画刷填充饼形g.FillPie(greenBrush, 40, 20, 200, 40, 0.0f, 60.0f);//释放绘图资源redBrush.Dispose();greenBrush.Dispose();blueBrush.Dispose();

效果如下图:

结论

希望这篇文章能帮助您理解如何使用GDI+中的画刷和画笔,任何意见请留言。

欢迎关注我的大鱼号:程序你好
微信公众号:codinghello

CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷相关推荐

  1. MFC更换画笔(画刷)颜色以及画眼睛(GDI画图)

    MFC画眼睛 换画笔(画刷)颜色(参考链接:https://blog.csdn.net/sunxiving/article/details/51272001) 由于画笔一旦创建后就无法修改.所以要修改 ...

  2. GDI+学习之线性渐变画刷

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 作者:朱 ...

  3. 用 GDI 操作 EMF 文件[8]: 绘制图元文件时改变画笔与画刷

    本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...

  4. 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )

    文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...

  5. 【设计模式】软件设计七大原则 ( 合成复用原则 | 代码示例 )

    文章目录 一.合成复用原则简介 二.合成复用 与 继承复用 优缺点 三.合成复用原则代码示例 1.继承复用代码示例 2.合成复用代码示例 一.合成复用原则简介 合成复用原则 又称为 组合复用原则 , ...

  6. private用法 java_关于android开发中如何正确使用Private Services安全用法及代码示例...

    一.注意事项1.显式设置exported属性为false.@b@2.安全处理收到的intent,确认其真实性.@b@3.敏感数据可以在同一个应用中发送和请求. 二.原代码示例 1.AndroidMan ...

  7. pandas get_dummies用法及代码示例

    get_dummies 是 pandas 实现one hot encode的方式 ​  one-hot的基本思想:将离散型特征的每一种特征取值都看成一种状态,若指定离散特征中有N个 不相同的取值,那么 ...

  8. VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)

    上一节中鸡啄米讲了CDC类及其屏幕绘图函数,本节的主要内容是GDI对象之画笔CPen. GDI对象 在MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObje ...

  9. VS2010-MFC(图形图像:GDI对象之画刷CBrush)

    转自:http://www.jizhuomi.com/software/248.html 上一节讲的是画笔CPen的用法,前面也说了,GDI对象中最常用的就是画笔和画刷,本节就讲讲画刷CBrush. ...

最新文章

  1. 社交网络图挖掘5--图的邻居性质
  2. python代码怎么运行-python代码是怎样运行的
  3. Python学习之==json处理
  4. linux自动挂载usb光驱,Linux下使用Usbmount实现USB设备自动挂载
  5. web服务器原理(作业四)
  6. HarmonyOS笔记
  7. 深入了解Excel工作表中的控件
  8. cfree5更新C++11特性
  9. AddressBook iOS读取通讯录信息
  10. 华为云鲲鹏云服务介绍
  11. Linux、git和github的故事
  12. redis 加锁新方法 - jedisCluster.set(key,value,NX,EX,expireSeconds);
  13. 六、MySQL 数据库练习题1(包含前5章练习题目及答案)
  14. 【赛氪 Saikr】不正方形(数学、平面几何 ps:今天打了假赛)
  15. Centos中安装kenlm
  16. 用数组存储三个学生对象,并遍历数组
  17. 如何分析个股基本面_如何从基本面分析一只股票
  18. python语言程序设计实践教程答案上海交通大学陈东_《C语言程序设计》蔺德军 主著【摘要 书评 在线阅读】-苏宁易购图书...
  19. DELPHI快速入门基础教程
  20. 常见类型移动互联网应用程序必要个人信息范围规定(快速解读)

热门文章

  1. 隐藏攻击面,提升信息安全防范能力
  2. w ndows7快速关机,windows7怎么快速关机|win7系统实现快速关机的方法
  3. 关于stm32 HAL 库的一点小总结
  4. linux 自动mv脚本,linux replace rm to mv(脚本)
  5. CleanMyMacX软件怎么样?实际使用效果功能讲解
  6. 安利3款可以将pdf转换成word免费软件
  7. 如何利用EXCEL生成任意自由度任意显著因子的F分布表
  8. Jasper问题总结与解决方法~
  9. 计算机总评等级怎么弄,excel总评等级怎么做?
  10. 【计量经济学导论】04. 多重共线性