CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷
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+中的画刷和画笔,任何意见请留言。
CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷相关推荐
- MFC更换画笔(画刷)颜色以及画眼睛(GDI画图)
MFC画眼睛 换画笔(画刷)颜色(参考链接:https://blog.csdn.net/sunxiving/article/details/51272001) 由于画笔一旦创建后就无法修改.所以要修改 ...
- GDI+学习之线性渐变画刷
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 作者:朱 ...
- 用 GDI 操作 EMF 文件[8]: 绘制图元文件时改变画笔与画刷
本例效果图: 代码文件: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contr ...
- 【Groovy】map 集合 ( 根据 Key 获取 map 集合中对应的值 | map.Key 方式 | map.‘Key’ 方式 | map[‘Key’] 方式 | 代码示例 )
文章目录 一.根据 Key 获取 map 集合中对应的值 1.通过 map.Key 方式获取 map 集合中的值 Value 2.通过 map.'Key' 方式获取 map 集合中的值 Value 3 ...
- 【设计模式】软件设计七大原则 ( 合成复用原则 | 代码示例 )
文章目录 一.合成复用原则简介 二.合成复用 与 继承复用 优缺点 三.合成复用原则代码示例 1.继承复用代码示例 2.合成复用代码示例 一.合成复用原则简介 合成复用原则 又称为 组合复用原则 , ...
- private用法 java_关于android开发中如何正确使用Private Services安全用法及代码示例...
一.注意事项1.显式设置exported属性为false.@b@2.安全处理收到的intent,确认其真实性.@b@3.敏感数据可以在同一个应用中发送和请求. 二.原代码示例 1.AndroidMan ...
- pandas get_dummies用法及代码示例
get_dummies 是 pandas 实现one hot encode的方式 one-hot的基本思想:将离散型特征的每一种特征取值都看成一种状态,若指定离散特征中有N个 不相同的取值,那么 ...
- VS2010/MFC编程入门之五十(图形图像:GDI对象之画笔CPen)
上一节中鸡啄米讲了CDC类及其屏幕绘图函数,本节的主要内容是GDI对象之画笔CPen. GDI对象 在MFC中,CGdiObject类是GDI对象的基类,通过查阅MSDN我们可以看到,CGdiObje ...
- VS2010-MFC(图形图像:GDI对象之画刷CBrush)
转自:http://www.jizhuomi.com/software/248.html 上一节讲的是画笔CPen的用法,前面也说了,GDI对象中最常用的就是画笔和画刷,本节就讲讲画刷CBrush. ...
最新文章
- 社交网络图挖掘5--图的邻居性质
- python代码怎么运行-python代码是怎样运行的
- Python学习之==json处理
- linux自动挂载usb光驱,Linux下使用Usbmount实现USB设备自动挂载
- web服务器原理(作业四)
- HarmonyOS笔记
- 深入了解Excel工作表中的控件
- cfree5更新C++11特性
- AddressBook iOS读取通讯录信息
- 华为云鲲鹏云服务介绍
- Linux、git和github的故事
- redis 加锁新方法 - jedisCluster.set(key,value,NX,EX,expireSeconds);
- 六、MySQL 数据库练习题1(包含前5章练习题目及答案)
- 【赛氪 Saikr】不正方形(数学、平面几何 ps:今天打了假赛)
- Centos中安装kenlm
- 用数组存储三个学生对象,并遍历数组
- 如何分析个股基本面_如何从基本面分析一只股票
- python语言程序设计实践教程答案上海交通大学陈东_《C语言程序设计》蔺德军 主著【摘要 书评 在线阅读】-苏宁易购图书...
- DELPHI快速入门基础教程
- 常见类型移动互联网应用程序必要个人信息范围规定(快速解读)