共用方式為


GDI+ 中的筆刷和填滿的形狀

封閉圖形 (例如矩形或橢圓形) 由外框和內部組成。 外框是用畫筆繪製的,而內部則以筆刷填滿。 GDI+ 提供數個筆刷類別來填滿封閉圖案的內部:SolidBrushHatchBrushTextureBrushLinearGradientBrushPathGradientBrush。 所有這些類別都繼承自 Brush 類別。 下圖顯示以實心筆刷填滿的矩形,以及以影線筆刷填滿的橢圓形。

以實心筆刷填滿的矩形,以及填滿影線筆刷的橢圓形的螢幕擷取畫面。

實心筆刷

若要繪製 Bézier 曲線,您需要 Graphics 類別的實例和 BrushGraphics 類別的實例提供方法,例如 FillRectangleFillEllipse,而 Brush 會儲存填滿的屬性,例如色彩和圖樣。 Brush 會作為其中一個引數傳遞至 fill 方法。 下列程式碼範例示範如何使用純紅色填滿橢圓形。

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);
Dim mySolidBrush As New SolidBrush(Color.Red)
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)

注意

在上述範例中,筆刷的類型為 SolidBrush,其繼承自 Brush

影線筆刷

當您以影線筆刷填滿圖形時,您可以指定前景色彩、背景色彩和影線樣式。 前景色彩是影線的色彩。

HatchBrush myHatchBrush =
   new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);
Dim myHatchBrush As _
   New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)

GDI+ 提供超過 50 個影線樣式;下圖所示的三個樣式為 HorizontalForwardDiagonalCross

三個橢圓形的螢幕擷取畫面,其中包含水平影線筆刷、正對角線影線筆刷和交叉影線筆刷。

紋理筆刷

使用紋理筆刷,您可以使用儲存在點陣圖中的圖樣填滿圖形。 例如,假設下圖儲存在名為 MyTexture.bmp 的磁碟檔案中。

My Texture dot b m p 檔案的螢幕擷取畫面。

下列程式碼範例示範如何重複儲存在 MyTexture.bmp中的圖片,以填滿橢圓形。

Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);
Dim myImage As Image = Image.FromFile("MyTexture.bmp")
Dim myTextureBrush As New TextureBrush(myImage)
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)

下圖顯示填滿橢圓形。

以紋理筆刷填滿的橢圓形的螢幕擷取畫面。

漸層筆刷

GDI+ 提供兩種漸層筆刷:線性和路徑。 您可以使用線性漸層筆刷,以色彩填滿圖形,該色彩會在水平、垂直或對角線之間移動時逐漸變更。 下列程式碼範例示範如何使用水平漸層筆刷填滿橢圓形,當您從橢圓形的左邊緣移至右邊緣時,從藍色變更為綠色。

LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
   myRectangle,
   Color.Blue,
   Color.Green,
   LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);
Dim myLinearGradientBrush As New LinearGradientBrush( _
   myRectangle, _
   Color.Blue, _
   Color.Green, _
   LinearGradientMode.Horizontal)
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)

下圖顯示填滿的橢圓形。

以水平漸層筆刷填滿的橢圓形的螢幕擷取畫面。

路徑漸層筆刷可以設定為當您從圖形中央移至邊緣時變更色彩。

以路徑漸層筆刷填滿的橢圓形的螢幕擷取畫面。

路徑漸層筆刷相當有彈性。 下圖中用來填滿三角形的漸層筆刷會逐漸從中央的紅色變更為頂點上三種不同的色彩。

以路徑漸層筆刷填滿的三角形的螢幕擷取畫面。

另請參閱