共用方式為


HOW TO:使用不透明和半透明筆刷繪製

更新:2007 年 11 月

填滿形狀時,您必須將 Brush 物件傳遞至 Graphics 類別的其中一個填色方法 (Fill Method)。SolidBrush 建構函式的其中一個參數是 Color 物件。若要填滿不透明的形狀,請將色彩的 Alpha 元素設定為 255;若要填滿半透明的形狀,則請將 Alpha 元素設定為 1 到 254 之間的任何值。

當您填滿半透明的形狀時,形狀的色彩會與背景色彩混合。Alpha 元素會指定形狀與背景的色彩混合方式;Alpha 值愈接近 0 會愈強調背景色彩,Alpha 值愈接近 255 則愈強調形狀的色彩。

範例

下列範例會先繪製點陣圖,然後填滿與點陣圖重疊的三個橢圓形。第一個橢圓形使用的 Alpha 元素值為 255,因此是不透明的。第二個和第三個橢圓形使用的 Alpha 元素值為 128,因此是半透明的,您可以透過橢圓形看見背景影像。設定 CompositingQuality 屬性的呼叫會使第三個橢圓形的混色與 Gamma 修正一起進行。

下圖顯示下列程式碼的輸出。

![不透明和半透明](images)

Dim bitmap As New Bitmap("Texture1.jpg")
e.Graphics.DrawImage(bitmap, 50, 50, bitmap.Width, bitmap.Height)

Dim opaqueBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim semiTransBrush As New SolidBrush(Color.FromArgb(128, 0, 0, 255))

e.Graphics.FillEllipse(opaqueBrush, 35, 45, 45, 30)
e.Graphics.FillEllipse(semiTransBrush, 86, 45, 45, 30)

e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected
e.Graphics.FillEllipse(semiTransBrush, 40, 90, 86, 30)

Bitmap bitmap = new Bitmap("Texture1.jpg");
e.Graphics.DrawImage(bitmap, 50, 50, bitmap.Width, bitmap.Height);

SolidBrush opaqueBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(128, 0, 0, 255));

e.Graphics.FillEllipse(opaqueBrush, 35, 45, 45, 30);
e.Graphics.FillEllipse(semiTransBrush, 86, 45, 45, 30);

e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;
e.Graphics.FillEllipse(semiTransBrush, 40, 90, 86, 30);

編譯程式碼

上述範例是專為與 Windows Form 搭配使用而設計的,而且它需要 PaintEventArgse (即 PaintEventHandler 的參數)。

請參閱

工作

HOW TO:為控制項提供透明背景

HOW TO:繪製不透明和半透明線條

HOW TO:建立透明的 Windows Form

其他資源

Windows Form 中的圖形和繪圖

Alpha 混色線條和填色