VB.NET繪圖五點基本要素概覽
大家通過對VB.NET的學習,可以知道,它是一種非常實用的開發語言。并且在繪圖方面體現了非常大的作用。我們可以通過本文先了解一下VB.NET繪圖的一些基本知識,初步掌握這一方面的應用技巧。#t#
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枚舉類型成員列表供用戶選擇。
#p#
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(顏色)
清除窗體的畫面,并用顏色填充整個窗體。