VB.NET繪圖五點(diǎn)基本要素概覽
大家通過對(duì)VB.NET的學(xué)習(xí),可以知道,它是一種非常實(shí)用的開發(fā)語言。并且在繪圖方面體現(xiàn)了非常大的作用。我們可以通過本文先了解一下VB.NET繪圖的一些基本知識(shí),初步掌握這一方面的應(yīng)用技巧。#t#
VB.NET繪圖1. 創(chuàng)建Graphics對(duì)象
在VB.Net中,繪制圖形需要指定繪圖表面。其中,窗體和所有具有Text屬性的控件都可以作為繪制圖形的表面。因?yàn)镚raphics對(duì)象標(biāo)識(shí)GDI+的繪圖表面,所以,繪制圖形必須先創(chuàng)建Graphics對(duì)象。創(chuàng)建Graphics對(duì)象有以下幾種方法。
1> 使用CreateGraphics方法創(chuàng)建
這是一種常見的創(chuàng)建方法,其格式為:
Dim 對(duì)象名 As Graphics
對(duì)象名=窗體名(或控件名).CreateGraphics
2> 利用PaintEventArgs參數(shù)傳遞Graphics對(duì)象
通過窗體或控件的Paint事件可以直接完成圖形繪制。在編寫Paint事件處理程序時(shí),參數(shù)PaintEventArgs就提供了圖形對(duì)象。例如:
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 對(duì)象創(chuàng)建
還可以使用Image對(duì)象來創(chuàng)建,這時(shí)要使用Graphics.FromImage方法
VB.NET繪圖2. 畫筆
畫筆是用來畫線的GDI+對(duì)象,它是Pen類的一個(gè)實(shí)例。使用畫筆可以繪制直線,曲線,以及矩形,圓形,多邊形等形狀的邊框。
1> 建立畫筆
格式:
Dim 畫筆名 As New Pen(顏色[,寬度])
其中顏色即用畫筆繪制線條的顏色,寬度是畫筆繪制線條的寬度,單位是像素。寬度的默認(rèn)值是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)是直線的起始點(diǎn)和終止點(diǎn)的坐標(biāo),他們可以是Integer值,也可以是Single值。當(dāng)直線很短時(shí),可以近似為點(diǎn)。
(2) DrawRectangle方法——畫矩形
DrawRectangle(畫筆名,X,Y,寬度,高度)
其中,(X,Y)時(shí)矩形左上角的坐標(biāo),寬度和高度指定矩形的寬和長(zhǎng)。
(3) DrawPolygon方法——畫多邊形
DrawPolygon(畫筆名,頂點(diǎn))
其中,頂點(diǎn)是一個(gè)數(shù)組,該數(shù)組類型是Point或PointF結(jié)構(gòu),數(shù)組的各元素用來指定多邊形各頂點(diǎn)的坐標(biāo)。由Point結(jié)構(gòu)指定的是Integer類型,而由PointF指定的是Single類型。
用Point或PointF結(jié)構(gòu)來定義一個(gè)點(diǎn)的格式是:
Dim 點(diǎn)名 As New Point/PointF(x,y)
DrawPolygon方法的功能是按數(shù)組頂點(diǎn)的順序連接成一個(gè)多邊形,兩個(gè)連續(xù)的頂點(diǎn)之間繪制一條邊。
(4) DrawEllipse方法——畫圓和橢圓
DrawEllipse(畫筆名,X,Y,寬度,高度)
方法中的x,y,寬度,高度定義的矩形是要繪制的圓或橢圓的外切矩形,它決定了所畫橢圓的大小和形狀。當(dāng)寬度和高度相等時(shí),所畫的就是圓,否則就是橢圓。
(5) DrawArc方法——畫弧
DrawArc(畫筆名,X,Y,寬度,高度,起始角,掃描角)
該方法與DrawEllipse方法相比多了起始角和掃描角兩個(gè)參數(shù),這可以看作是在截取圓或橢圓而形成的一段弧。起始角和掃描角都是以度為單位的,一般以水平向右的半徑為0度,然后按順時(shí)針方向畫弧。起始角是開始畫弧的角度,掃描角是順時(shí)針方向增加的角度。當(dāng)掃描角為360度時(shí),畫出的就是一個(gè)圓或者橢圓。
(6) DrawPie方法——畫餅圖
DrawPie(畫筆名,X,Y,寬度,高度,起始角,掃描角)
餅圖也稱扇圖。該方法與DrawArc方法的參數(shù)一樣,但是餅圖比弧多出兩條半徑。
VB.NET繪圖3. 畫刷與填充
在VB.Net中,如果要在閉合圖形中填充顏色,圖案,或者呈現(xiàn)文本,必須先創(chuàng)建畫刷。畫刷與繪圖方法結(jié)合使用,可以用顏色或圖案對(duì)圖形進(jìn)行填充。GDI+提供了5種畫刷,這里只介紹兩種常用的。
1> 單色畫刷(SolidBrush)
利用SolidBrush類可以定義畫刷并初始化一個(gè)指定的單一顏色。格式為:
Dim 畫刷名 As New SolidBrush(顏色)
或
Dim 畫刷名 As Brush
畫刷名 = New SolidBrush(顏色)
2> 模式填充畫刷(HatchBrush)
利用HatchBrush類可以定義一個(gè)用特定圖案填充圖形的畫刷。格式為:
Dim 畫刷名 As New HatchBrush(類型,前景色[,背景色])
其中,類型用來指定填充的圖案,它是HatchStyle枚舉類型,該枚舉類型有50多個(gè)成員,每個(gè)成員提供一種圖案。當(dāng)在代碼編輯窗口中輸入HatchStyle后,系統(tǒng)會(huì)自動(dòng)彈出一個(gè)HatchStyle枚舉類型成員列表供用戶選擇。
#p#
VB.NET繪圖4. 繪制文字
在VB.Net中,窗體或圖片框中的文字被作為圖形處理,在文本框,標(biāo)簽,列表框等控件中,可以通過文本和圖形兩種方式文成文字的輸出。
通過Graphics類中的DrawString方法可以實(shí)現(xiàn)圖形文字的輸出,使用時(shí),要先定義畫刷,然后用畫刷畫出文字。
1> 字體
輸出文字前要先創(chuàng)建字體對(duì)象,并先指定字體的名稱,大小,樣式等。字體對(duì)象通過Font類來創(chuàng)建,格式為:
Dim 字體對(duì)象 As New Font(名稱,大小[,樣式[,量度單位]])
其中,名稱是指定字體名稱的字符串,如隸書,Symbol等。
樣式是FontStyle枚舉類型。其成員有:
Bold,Italic,Regular,Strikeout(中劃線),Underline
量度單位是用來指定字體大小的單位,它是GraphicsUnit枚舉類型。其成員有:
Display 1/75英寸
Document 文檔單位(1/300英寸)
Inch 英寸
Millimeter 毫米
Pixel 像素
Point 打印機(jī)點(diǎn)(1/75英寸)
World 通用
參數(shù)樣式和量度可以省略,字體的缺省值為常規(guī)樣式和Point大小單位。樣式可以同時(shí)指定多個(gè),之間用Or連接。
2> DrawString方法
格式為:
DrawString(字符串,字體,畫刷,點(diǎn))
DrawString(字符串,字體,畫刷,矩形)
DrawString(字符串,字體,畫刷,X,Y)
點(diǎn)用來指定文本輸出的開始位置,它是PointF結(jié)構(gòu)類型。矩形指定文本輸出位置,它是RectangleF結(jié)構(gòu)類型。XY指定文本輸出的起始位置,都是Single類型。
VB.NET繪圖5. 刪除Graphics對(duì)象和清屏
1> 刪除Graphics對(duì)象
Graphics對(duì)象使用完后應(yīng)及時(shí)刪除,以釋放該對(duì)象占用的資源,使用Dispose方法。
2> 清屏
利用Graphics類的Clear方法可以清除畫圖工作區(qū)的所有內(nèi)容,并用指定的背景顏色進(jìn)行填充。
格式:Clear(顏色)
清除窗體的畫面,并用顏色填充整個(gè)窗體。