若要在 GDI+ 中繪製線條,需要有 Graphics 物件和 Pen 物件。Graphics 物件會提供 DrawLine 方法,而 Pen 物件則會保留線條的屬性 (Attribute),例如色彩和寬度。Pen 物件是當成引數傳遞至 DrawLine 方法。
下列範例會從 (0, 0) 到 (100, 100) 繪製線條。它包含從 .NET Frameworks Form 類別繼承而來的 LineForm 類別。Form 類別會封裝建立和顯示視窗的必要程式碼。
LineForm 類別是由被覆寫的 OnPaint 方法和 Main 方法所組成。Main 方法會呼叫 Application 物件的 Run 方法,建立 LineForm 物件的執行個體 (Instance),並將它顯示為視窗。在螢幕上繪製線條的 GDI+ 程式碼則包含在 OnPaint 方法中。
呼叫 OnPaint 方法來回應 Paint 事件 (必須重繪表單時便會發生 Paint 事件,例如表單曾移動或重新調整大小) 時,這個方法會從系統收到 PaintEventArgs 物件。PaintEventArgs 物件的其中一個成員為和表單關聯的 Graphics 物件。OnPaint 方法指派這個 Graphics 物件為 g。
接著,OnPaint 方法會建立 Pen 物件。傳遞至 Pen 建構函式 (Constructor) 的其中一個引數是系統定義的色彩 Color.Black。
接著,OnPaint 方法會再建立兩個 Point 物件,分別代表即將繪製線條的兩個端點。
最後,OnPaint 方法會呼叫 Graphics.DrawLine 方法,在螢幕上繪製線條。傳遞至 DrawLine 方法的引數是 Pen 物件和兩個 Point 物件。
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports System.Drawing.Imaging
Imports System.Drawing.Text
Public Class LineForm
Inherits Form
Protected Overrides Sub OnPaint(ByVal e as PaintEventArgs)
Dim g As Graphics
g = e.Graphics
Dim blackPen As new Pen(Color.Black, 3)
Dim startPoint As new Point(0, 0)
Dim endPoint As new Point(100, 100)
g.DrawLine(blackPen, startPoint, endPoint)
End Sub
Shared Sub Main()
Application.Run(new LineForm())
End Sub
End Class
[C#]
using System;
using System.Windows.Forms;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
public class LineForm : Form
{
protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
Pen blackPen = new Pen(Color.Black, 3);
Point startPoint = new Point(0, 0);
Point endPoint = new Point(100, 100);
g.DrawLine(blackPen, startPoint, endPoint);
}
public static void Main()
{
Application.Run(new LineForm());
}
}