GDI+快速入门
GDI+的内容很多,可以写成一本厚厚的书,我们不可能在这里详细介绍GDI+,只能介绍其中最基础的部分。
如果你能掌握
这些基础的内容,也足以应付大多数场合需要。
画笔(Pen)
绘图当然要用笔(Pen)来画,通过Pens可以返回各种颜色的默认画笔,例如:
Dim
pn As Pen = Pens.Red '获得红色的默认画笔默认画笔的宽度都是一个向度,如果要获得一个指定宽度的画笔,可以采用下面的语法:
Dim
变量名 As New Pen(颜色, 宽度)例如:
Dim
pn As New Pen(Color.Green, 5) '获得一个绿色的宽度为5的画笔Pen有一个DashStyle属性,用于定义通过此画笔绘制出的线条类型,该属性是一个DashStyle型枚举,包括以下可选值:
Dash 由线段构成的直线。
DashDot 由线段和点间隔构成的直线。
DashDotDot 由线段和连续两个点间隔构成的直线
Dot 由点构成的直线。
Solid 实线,这是默认值。
例如下面的代码定义一个红色的画笔,该画笔画出来的线条将是虚线,而不是实线:
Dim
pn As New Pen(Color.Red)画刷(Brush)
画图除了要用Pen(画笔),还要用Brush(画刷)。
通过Brushes可以返回各种颜色的默认画刷,例如:
Dim
br As Brush = Brushes.Red '获得红色的画刷可以用自定义的颜色来定义画刷,例如:
Dim
br1
As Brush
= New
SolidBrush(Color.FromARGB(255,255,192,203))
Dim br2
As Brush
= New
SolidBrush(Color.FromARGB(-16181))
点(Point)
一个点(Point)表示一个位置,定义一个点的语法是:
Dim
变量名 As New Point(x, y)X表示点的水平坐标位置,y表示点的垂直位置,单位为像素,坐标原点为左上角。
区域()
Graphics成员
Grpahics提供了很多方法用于绘制各种各样的图形和文字,我们下面逐一介绍这些方法。
在介绍的过程中,我们会提供一些示例代码,为了便于测试这些代码,请新建一个窗口,在窗口中分别加入一个绘图板(Painter)和一个按钮(Button),将按钮的Click事件代码设置为示例代码。
DrawLine(pen,x1,y1,x2,y2)
绘制一条直线,参数pen指定画笔,x1和y1指定直线的起始位置,x2和y2指定直线的结束位置,单位为像素。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawLines(pen,Points)
绘制一个线条,将一系列的点连接起来,参数Points为一个数组,指定所有要连接的点。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawRectangle(pen,x,y,width,height)
绘制一个四边形,参数x和y指定四边形的起始位置,width和height分别用于指定四边形的宽度和高度。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawPolygon(Pen,Points)
绘制一个多边型,参数Points为一个数组,指定多边形的各个顶点。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawEllipse(pen,x,y,width,height)
绘制一个椭圆,x和y指定椭圆边框的左上角位置,width和height指定椭圆边框的宽度和高度。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawArc(pen,x,y,width,height,startAngle,sweepAngle)
绘制一段弧型,弧形是椭圆周边的一部分,所以前五个参数和DrawEllipse方法一致,startAngle指定弧形的起始角度,sweepAngle指定该弧形所扫过的角度值,也就是幅度,方向为顺时钟。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawPie(pen,x,y,width,height,startAngle,sweepAngle)
绘制一个扇形,扇形是椭圆的一部分,所以前五个参数和DrawEllipse方法一致,startAngle指定扇形的起始角度,sweepAngle指定该扇形所扫过的角度值,也就是幅度,方向为顺时钟。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
FillRectangle(Brush,x,y,width,height)
填充一个四边形,参数Brush指定填充所使用的画刷,x和y指定四边形的起始位置,width和height分别用于指定四边形的宽度和高度。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
FillPolygon(Pen,Points)
填充一个多边型,参数Points为一个数组,指定多边形的各个定点。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
FillEllipse(pen,x,y,width,height)
填充一个椭圆型,x和y指定椭圆边框的左上角位置,width和height指定椭圆边框的宽度和高度。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
FillPie(pen,x,y,width,height,startAngle,sweepAngle)
填充一个扇形,扇形是椭圆的一部分,所以前五个参数和FillEllipse方法一致,startAngle指定扇形的起始角度,sweepAngle指定该扇形所扫过的角度值,也就是幅度,方向为顺时钟。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawString(s,font,brush,x,y)
在指定的位置,用指定的画刷和字体,绘制指定的文本。
参数s指定要绘制的文本,font指定字体,brush指定画刷,x和y指定起始位置。
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
DrawImage(Image,x,y,width,height)
在指定位置按指定大小绘制指定的图形。
参数Image为要绘制的图形(Image),可用GetImage函数从指定的图形文件中获得图形,如果文件已经事先复制到管理项目的Images子目录下,则只需指定文件名即可,否则需要包括路径。
参数x和y指定图形的起始位置,width和height指定大小。
其中width和height参数是可选的,如果省略,则按图片的原始大小绘制。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")绘制结果:
Clear(Color)
清除所有内容,并将背景色设为参数Color指定的颜色。
例如:
Dim
p As WinForm.Painter = e.Form.Controls("Painter1")