前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷

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

作者头像
程序你好
发布2018-07-20 16:05:26
1.2K0
发布2018-07-20 16:05:26
举报
文章被收录于专栏:程序你好程序你好

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对象。

代码语言:c#
复制
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 代表红色画刷。

创建画刷对象:

代码语言:c#
复制
SolidBrushredBrush =newSolidBrush(Color.Red);
SolidBrushgreenBrush =newgreenBrush(Color.Red);
SolidBrushblueBrush =newblueBrush(Color.Red);

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

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

代码语言:c#
复制
Graphicsg = e.Graphics;

//创建Solid画刷对象
//使用红色、绿色、蓝色
SolidBrushredBrush =newSolidBrush(Color.Red);
SolidBrushgreenBrush =newSolidBrush(Color.Green);
SolidBrushblueBrush =newSolidBrush(Color.Blue);

//使用红色填充ellipse
g.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+中的画刷和画笔,任何意见请留言。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序你好 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 理解和使用画刷对象
  • 画刷类Brush
  • 结论
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档