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();

扫描二维码关注公众号,回复: 1599900 查看本文章

画刷类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

猜你喜欢

转载自blog.csdn.net/flysnowjava/article/details/80586615