220 likes | 429 Views
第 23 章 使用 GDI+ 绘图. GDI+ 是 .NET Framework 中专门用于绘制线条和形状、呈现文本或显示与操作图像的技术。 Graphics 类封装一个 GDI+ 绘图图面, Graphics 对象和点、区域、颜色、刷、画笔、字体等结构或类提供将对象绘制到显示设备的方法。本章节主要介绍以下知识点。 Graphics 类; 点、区域、颜色、刷、画笔和字体; 绘制直线、虚线和曲线; 绘制多边形和椭圆; 绘制饼状图; 绘制文本。. 23.1 GDI+ 概述.
E N D
第23章 使用GDI+绘图 • GDI+是.NET Framework中专门用于绘制线条和形状、呈现文本或显示与操作图像的技术。Graphics类封装一个GDI+绘图图面,Graphics对象和点、区域、颜色、刷、画笔、字体等结构或类提供将对象绘制到显示设备的方法。本章节主要介绍以下知识点。 • Graphics类; • 点、区域、颜色、刷、画笔和字体; • 绘制直线、虚线和曲线; • 绘制多边形和椭圆; • 绘制饼状图; • 绘制文本。
23.1 GDI+概述 • GDI+是Windows XP操作系统中提供二维矢量图形、图像处理和版式的部分。.NET Framework为操作图形提供了GDI+应用程序编程接口,GDI+是 Windows图形设备接口(GDI)的高级实现,通过使用GDI+,开发人员可以创建图形、绘制文本,以及以对象的方式来操作图形或图像。
23.1.1 Graphics类 • Graphics类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法,是可以用来创建图形图像的对象。通常,Graphics对象与特定的设备上下文关联。 • 1.创建Graphics对象 • 2.绘制图形、文本或图像 • 3.填充图形或图像
23.1.2 点和区域 • 在GDI+中,二维图像都基于一个二维平面中,并使用点、矩形、区域来描述这些图像。这个二维平面的坐标系如图23.1所示。平面的左上角为坐标系的原点,水平朝右的方向表示X轴的正方向,垂直朝下的方向表示Y轴的正方向。 • 1.Point和PointF结构 • 2.Rectangle和RectangleF结构 • 3.Size和SizeF结构 • 4.Region类
23.1.3 颜色 • Color(颜色)结构表示一种ARGB颜色,它由4个分量值(alpha、红色、绿色和蓝色)组成。Color结构包括多个方法,如用来创建颜色的FromArgb()方法、FromKnownColor()方法、FromName()方法等。
23.1.4 刷 • Brush(刷)类定义用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部的对象。 • 注意:Brush类是一个抽象基类,不能进行实例化。若要创建一个刷的实例,必须使用从Brush派生出的类,如SolidBrush、TextureBrush、LinearGradientBrush类等。
23.1.5 画笔 • Pen(画笔)类定义用于绘制直线和曲线的对象,还可以指定直线的宽度、样式等。要创建一个画笔可以使用Pen类的构造函数。Pen类包括4个构造函数,具体说明如下。 • public Pen(Brush brush),使用刷创建画笔。brush参数指定画笔所使用的刷。 • public Pen(Color color),使用颜色创建画笔。color参数指定画笔所使用的颜色。 • public Pen(Brush brush,float width),使用刷创建画笔。brush参数指定画笔所使用的刷,width参数指定画笔的宽度。 • public Pen(Color color,float width),使用颜色创建画笔。color参数指定画笔所使用的颜色,width参数指定画笔的宽度。
23.1.6 字体 • Font(字体)类定义特定的文本格式,包括字体、字号和字形属性。创建字体可以使用Font类的构造函数。
23.2 实例一:使用GDI+绘制线条、形状和文本 • 【实例23-1】使用GDI+中的Graphics对象对象在Panel控件上绘制直线、折线、曲线、虚线、矩形、三角形、多边形、椭圆、饼状图和文本。下面介绍具体实现方法。
23.2.1 创建Sample_23窗体应用程序 • 【实例23-1】创建了名称为“Sample_23”的Windows Form应用程序。
23.2.2 Paint事件 • 当重绘Panel控件时,会触发Paint事件。该事件由Control类(控件的基类)提供,Panel类继承该事件。在Sample_23窗体应用程序中,笔者为pChart控件添加了Paint事件,并在该事件中为pChart控件的顶部绘制了3D边界。该事件的名称为pChart_Paint(object sender,PaintEventArgs e)。
23.2.3 绘制直线 • 单击MainForm窗体中的“绘制直线”按钮可以在pChart控件中绘制一条直线。该功能由“绘制直线”按钮的Click事件——btnDrawLine_Click(object sender,EventArgs e)实现。
23.2.4 绘制折线 • 单击MainForm窗体中的“绘制折线”按钮可以在pChart控件中绘制一条折线。该功能由“绘制折线”按钮的Click事件——btnDrawLines_Click(object sender,EventArgs e)实现。
23.2.5 绘制曲线 • 单击MainForm窗体中的“绘制曲线”按钮可以在pChart控件中绘制一条曲线。该功能由“绘制曲线”按钮的Click事件——btnDrawCurve_Click(object sender,EventArgs e)实现。
23.2.6 绘制虚线 • 单击MainForm窗体中的“绘制虚线”按钮可以在pChart控件中绘制一条虚线。该功能由“绘制虚线”按钮的Click事件——btnDrawDashLine_Click(object sender,EventArgs e)实现。
23.2.7 绘制矩形 • 单击MainForm窗体中的“绘制矩形”按钮可以在pChart控件中绘制一个矩形。该功能由“绘制矩形”按钮的Click事件——btnDrawRect_Click(object sender,EventArgs e)实现。
23.2.8 绘制三角形 • 单击MainForm窗体中的“绘制三角形”按钮可以在pChart控件中绘制一个三角形。该功能由“绘制三角形”按钮的Click事件——btnDrawTriangle_Click(object sender,EventArgs e)实现。
23.2.9 绘制多边形 • 单击MainForm窗体中的“绘制多边形”按钮可以在pChart控件中绘制一个多边形。该功能由“绘制多边形”按钮的Click事件——btnDrawPolygon_Click(object sender,EventArgs e)实现。
23.2.10 绘制椭圆 • 单击MainForm窗体中的“绘制椭圆”按钮可以在pChart控件中绘制一个椭圆。该功能由“绘制椭圆”按钮的Click事件——btnDrawEllipse_Click(object sender,EventArgs e)实现。
23.2.11 绘制饼状图 • 单击MainForm窗体中的“绘制饼状图”按钮可以在pChart控件中绘制一个饼状图。该功能由“绘制饼状图”按钮的Click事件——btnDrawPie_Click(object sender,EventArgs e)实现。
23.2.12 绘制文本 • 单击MainForm窗体中的“绘制文本”按钮可以在pChart控件中绘制一段文本“这是一段文本。”。该功能由“绘制文本”按钮的Click事件——btnDrawString_Click(object sender,EventArgs e)实现。
23.3 小结 • 本章主要介绍了NET Framework中的GDI+绘制技术,如Graphics类、区域、颜色、刷、画笔、字体等,以及绘制直线、虚线、曲线、多边形、椭圆、饼状图和文本。其中,读者要着重掌握使用GDI+绘制直线、虚线、曲线、多边形、椭圆、饼状图和文本的方法,为后续编写功能强大的Windows应用程序奠定基础。下一章将要介绍.NET Framework中的数据访问。