大家通过对VB.NET的学习,可以知道,它是一种非常实用的开发语言。并且在绘图方面体现了非常大的作用。我们可以通过本文先了解一下VB.NET绘图的一些基本知识,初步掌握这一方面的应用技巧。
VB.NET绘图1. 创建Graphics对象
在VB.Net中,绘制图形需要指定绘图表面。其中,窗体和所有具有Text属性的控件都可以作为绘制图形的表面。因为Graphics对象标识GDI+的绘图表面,所以,绘制图形必须先创建Graphics对象。创建Graphics对象有以下几种方法。
1> 使用CreateGraphics方法创建
这是一种常见的创建方法,其格式为:
Dim 对象名 As Graphics
对象名=窗体名(或控件名).CreateGraphics
2> 利用PaintEventArgs参数传递Graphics对象
通过窗体或控件的Paint事件可以直接完成图形绘制。在编写Paint事件处理程序时,参数PaintEventArgs就提供了图形对象。例如:
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint
Dim g_paint As Graphics = e.Graphics
…
End Sub
3> 从Image 对象创建
还可以使用Image对象来创建,这时要使用Graphics.FromImage方法
VB.NET绘图2. 画笔
画笔是用来画线的GDI+对象,它是Pen类的一个实例。使用画笔可以绘制直线,曲线,以及矩形,圆形,多边形等形状的边框。
1> 建立画笔
格式:
Dim 画笔名 As New Pen(颜色[,宽度])
其中颜色即用画笔绘制线条的颜色,宽度是画笔绘制线条的宽度,单位是像素。宽度的默认值是1。
例如:
Dim mypen As New Pen(Color.Blue)
或Dim mypen As Pen = New Pen(Color.Blue)
2> 绘制线条或空心形状
建立画笔后,就可以用Graphics类的各种方法绘制直线,曲线或矩形,圆形等空心形状的线条。
(1) DrawLine方法——画直线
DrawLine(画笔名,X1,Y1,X2,Y2)
其中,(X1,Y1)和(X2,Y2)是直线的起始点和终止点的坐标,他们可以是Integer值,也可以是Single值。当直线很短时,可以近似为点。
(2) DrawRectangle方法——画矩形
DrawRectangle(画笔名,X,Y,宽度,高度)
其中,(X,Y)时矩形左上角的坐标,宽度和高度指定矩形的宽和长。
(3) DrawPolygon方法——画多边形
DrawPolygon(画笔名,顶点)
其中,顶点是一个数组,该数组类型是Point或PointF结构,数组的各元素用来指定多边形各顶点的坐标。由Point结构指定的是Integer类型,而由PointF指定的是Single类型。
用Point或PointF结构来定义一个点的格式是:
Dim 点名 As New Point/PointF(x,y)
DrawPolygon方法的功能是按数组顶点的顺序连接成一个多边形,两个连续的顶点之间绘制一条边。
(4) DrawEllipse方法——画圆和椭圆
DrawEllipse(画笔名,X,Y,宽度,高度)
方法中的x,y,宽度,高度定义的矩形是要绘制的圆或椭圆的外切矩形,它决定了所画椭圆的大小和形状。当宽度和高度相等时,所画的就是圆,否则就是椭圆。
(5) DrawArc方法——画弧
DrawArc(画笔名,X,Y,宽度,高度,起始角,扫描角)
该方法与DrawEllipse方法相比多了起始角和扫描角两个参数,这可以看作是在截取圆或椭圆而形成的一段弧。起始角和扫描角都是以度为单位的,一般以水平向右的半径为0度,然后按顺时针方向画弧。起始角是开始画弧的角度,扫描角是顺时针方向增加的角度。当扫描角为360度时,画出的就是一个圆或者椭圆。
(6) DrawPie方法——画饼图
DrawPie(画笔名,X,Y,宽度,高度,起始角,扫描角)
饼图也称扇图。该方法与DrawArc方法的参数一样,但是饼图比弧多出两条半径。
VB.NET绘图3. 画刷与填充
在VB.Net中,如果要在闭合图形中填充颜色,图案,或者呈现文本,必须先创建画刷。画刷与绘图方法结合使用,可以用颜色或图案对图形进行填充。GDI+提供了5种画刷,这里只介绍两种常用的。
1> 单色画刷(SolidBrush)
利用SolidBrush类可以定义画刷并初始化一个指定的单一颜色。格式为:
Dim 画刷名 As New SolidBrush(颜色)
或
Dim 画刷名 As Brush
画刷名 = New SolidBrush(颜色)
2> 模式填充画刷(HatchBrush)
利用HatchBrush类可以定义一个用特定图案填充图形的画刷。格式为:
Dim 画刷名 As New HatchBrush(类型,前景色[,背景色])
其中,类型用来指定填充的图案,它是HatchStyle枚举类型,该枚举类型有50多个成员,每个成员提供一种图案。当在代码编辑窗口中输入HatchStyle后,系统会自动弹出一个HatchStyle枚举类型成员列表供用户选择。
VB.NET绘图4. 绘制文字
在VB.Net中,窗体或图片框中的文字被作为图形处理,在文本框,标签,列表框等控件中,可以通过文本和图形两种方式文成文字的输出。
通过Graphics类中的DrawString方法可以实现图形文字的输出,使用时,要先定义画刷,然后用画刷画出文字。
1> 字体
输出文字前要先创建字体对象,并先指定字体的名称,大小,样式等。字体对象通过Font类来创建,格式为:
Dim 字体对象 As New Font(名称,大小[,样式[,量度单位]])
其中,名称是指定字体名称的字符串,如隶书,Symbol等。
样式是FontStyle枚举类型。其成员有:
Bold,Italic,Regular,Strikeout(中划线),Underline
量度单位是用来指定字体大小的单位,它是GraphicsUnit枚举类型。其成员有:
Display 1/75英寸
Document 文档单位(1/300英寸)
Inch 英寸
Millimeter 毫米
Pixel 像素
Point 打印机点(1/75英寸)
World 通用
参数样式和量度可以省略,字体的缺省值为常规样式和Point大小单位。样式可以同时指定多个,之间用Or连接。
2> DrawString方法
格式为:
DrawString(字符串,字体,画刷,点)
DrawString(字符串,字体,画刷,矩形)
DrawString(字符串,字体,画刷,X,Y)
点用来指定文本输出的开始位置,它是PointF结构类型。矩形指定文本输出位置,它是RectangleF结构类型。XY指定文本输出的起始位置,都是Single类型。
VB.NET绘图5. 删除Graphics对象和清屏
1> 删除Graphics对象
Graphics对象使用完后应及时删除,以释放该对象占用的资源,使用Dispose方法。
2> 清屏
利用Graphics类的Clear方法可以清除画图工作区的所有内容,并用指定的背景颜色进行填充。
格式:Clear(颜色)
清除窗体的画面,并用颜色填充整个窗体。