共用方式為


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

矩形或橢圓形之類的封閉型形狀是由外框和內景所組成。 外框是以畫筆繪製,而內景則是以筆刷填滿。 GDI+ 提供了幾個筆刷類別,用來填滿封閉形狀的內景:SolidBrushHatchBrushTextureBrushLinearGradientBrushPathGradientBrush。 這些類別全部都繼承自 Brush 類別。 下圖將顯示由實心筆刷 (Solid Brush) 填滿的矩形,以及由規劃筆刷填滿的橢圓形。

填滿的圖案

實心筆刷

若要填滿封閉形狀,您需要 Graphics 類別執行個體和 BrushGraphics 類別執行個體提供方法,例如 FillRectangleFillEllipse,而 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 種規劃樣式;下圖中所顯示的三種樣式為 HorizontalForwardDiagonalCross

填滿的圖案

紋理筆刷

如果您使用紋理筆刷,您可以使用儲存在點陣圖中的圖樣來填滿形狀。 例如,假設下列圖片儲存在名為 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 上繪製實心矩形

HOW TO:在 Windows Form 上繪製實心橢圓形

參考

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

其他資源

線條、曲線和形狀