筆刷和填滿的圖形
矩形或橢圓形之類的封閉圖是由外框和內部所組成。 外框是使用 Pen 物件繪製,而內部會填入 Brush 物件。 Windows GDI+ 提供數個筆刷類別來填滿封閉式圖形的內部:SolidBrush、HatchBrush、TextureBrush、LinearGradientBrush和PathGradientBrush。 所有這些類別都繼承自 Brush 類別。 下圖顯示填滿實心筆刷的矩形,以及填滿影線筆刷的橢圓形。
若要填滿封閉圖形,您需要 Graphics 物件和 Brush 物件。 Graphics物件提供方法,例如FillRectangle和FillEllipse,而 Brush物件會儲存填滿的屬性,例如色彩和圖樣。 Brush物件的位址會當做其中一個引數傳遞至 fill 方法。 下列範例會以純紅色填滿橢圓形。
SolidBrush mySolidBrush(Color(255, 255, 0, 0));
myGraphics.FillEllipse(&mySolidBrush, 0, 0, 60, 40);
請注意,在上述範例中,筆刷的類型為 SolidBrush,其繼承自 Brush。
當您使用影線筆刷填滿圖形時,您可以指定前景色彩、背景色彩和影線樣式。 前景色彩是影線的色彩。
HatchBrush myHatchBrush(
HatchStyleVertical,
Color(255, 0, 0, 255),
Color(255, 0, 255, 0));
GDI+ 提供超過 50 個影線樣式,指定于 HatchStyle中。 下圖所示的三個樣式為 Horizontal、ForwardDiagonal 和 Cross。
使用紋理筆刷,您可以使用儲存在點陣圖中的圖樣來填滿圖形。 例如,假設下圖儲存在名為 MyTexture.bmp 的磁片檔案中。
下列範例會重複儲存在 MyTexture.bmp 中的圖片,以填滿省略號。
Image myImage(L"MyTexture.bmp");
TextureBrush myTextureBrush(&myImage);
myGraphics.FillEllipse(&myTextureBrush, 0, 0, 100, 50);
下圖顯示填滿的橢圓形。
您可以使用漸層筆刷來填滿圖案,其色彩會逐漸從圖形的某個部分變更為另一個部分。 例如,當您從圖形左側移至右側時,水準漸層筆刷會變更色彩。 下列範例會以水準漸層筆刷填滿橢圓形,當您從橢圓形左側移至右側時,會從藍色變更為綠色。
LinearGradientBrush myLinearGradientBrush(
myRect,
Color(255, 0, 0, 255),
Color(255, 0, 255, 0),
LinearGradientModeHorizontal);
myGraphics.FillEllipse(&myLinearGradientBrush, myRect);
下圖顯示填滿的橢圓形。
路徑漸層筆刷可以設定為在您從圖形中心移至界限時變更色彩。
路徑漸層筆刷相當有彈性。 下圖中用來填滿三角形的漸層筆刷會逐漸從中央的紅色變更為頂點上三種不同色彩中的每一種。