GDI+ 中的筆刷和填滿的形狀
更新:2007 年 11 月
矩形或橢圓形之類的封閉型形狀是由外框和內景所組成。外框是以畫筆繪製,而內景則是以筆刷填滿。GDI+ 提供了幾個筆刷類別,用來填滿封閉形狀的內景:SolidBrush、HatchBrush、TextureBrush、LinearGradientBrush 和 PathGradientBrush。這些類別全部都繼承自 Brush 類別。下圖將顯示由實心筆刷 (Solid Brush) 填滿的矩形,以及由規劃筆刷填滿的橢圓形。
實心筆刷
若要填滿封閉形狀,您需要 Graphics 類別執行個體和 Brush。Graphics 類別執行個體提供方法,例如 FillRectangle 和 FillEllipse,而 Brush 則是儲存填入的屬性,例如色彩和圖樣。Brush 會當成其中一個引數傳遞給填色方法 (Fill Method)。下列程式碼範例會示範如何使用實心紅色填滿橢圓形。
Dim mySolidBrush As New SolidBrush(Color.Red)
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)
SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);
注意事項: |
---|
上述範例中所使用的筆刷是屬於 SolidBrush 型別,其繼承自 Brush。 |
規劃筆刷
當您使用規劃筆刷填滿某個形狀時,您可以指定前景色彩、背景色彩和規劃的樣式。前景色彩即為規劃的色彩。
Dim myHatchBrush As _
New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)
HatchBrush myHatchBrush =
new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);
GDI+ 提供了超過 50 種規劃樣式;下圖中所顯示的三種樣式為 Horizontal、ForwardDiagonal 和 Cross。
紋理筆刷
如果您使用紋理筆刷,您可以使用儲存在點陣圖中的圖樣來填滿形狀。例如,假設下列圖片儲存在名為 MyTexture.bmp 的磁片檔案中。
下列程式碼範例會示範如何重複儲存在 MyTexture.bmp 的圖片來填滿橢圓形。
Dim myImage As Image = Image.FromFile("MyTexture.bmp")
Dim myTextureBrush As New TextureBrush(myImage)
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)
Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);
下圖顯示的是已填滿的橢圓形。
漸層筆刷
GDI+ 提供了兩種漸層筆刷:線形和路徑。您可以使用直線漸層路徑,當您以水平、垂直或對角方式在形狀上方移動時,將漸層變化的色彩填入形狀中。下列程式碼範例會示範如何使用水平漸層筆刷,當您從橢圓形的左緣移動到右緣時,將由藍漸層為綠的色彩填入橢圓形。
Dim myLinearGradientBrush As New LinearGradientBrush( _
myRectangle, _
Color.Blue, _
Color.Green, _
LinearGradientMode.Horizontal)
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)
LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
myRectangle,
Color.Blue,
Color.Green,
LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);
下圖顯示的是已填滿的橢圓形。
您可以設定使用路徑漸層筆刷,當您從形狀中心移到邊緣時變更形狀的色彩。
路徑漸層筆刷非常具有彈性。下圖中用來填滿三角形的漸層筆刷會從中心點,由紅色逐漸在垂直中心處變成三種不同的色彩。
請參閱
工作
HOW TO:在 Windows Form 上繪製實心橢圓形
參考
System.Drawing.Drawing2D.HatchBrush
System.Drawing.Drawing2D.LinearGradientBrush