HOW TO:繪製不透明和半透明線條
更新:2007 年 11 月
繪製線條時,必須將 Pen 物件傳遞至 Graphics 類別的 DrawLine 方法。Pen 建構函式的其中一個參數是 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, 10, 5, bitmap.Width, bitmap.Height)
Dim opaquePen As New Pen(Color.FromArgb(255, 0, 0, 255), 15)
Dim semiTransPen As New Pen(Color.FromArgb(128, 0, 0, 255), 15)
e.Graphics.DrawLine(opaquePen, 0, 20, 100, 20)
e.Graphics.DrawLine(semiTransPen, 0, 40, 100, 40)
e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected
e.Graphics.DrawLine(semiTransPen, 0, 60, 100, 60)
Bitmap bitmap = new Bitmap("Texture1.jpg");
e.Graphics.DrawImage(bitmap, 10, 5, bitmap.Width, bitmap.Height);
Pen opaquePen = new Pen(Color.FromArgb(255, 0, 0, 255), 15);
Pen semiTransPen = new Pen(Color.FromArgb(128, 0, 0, 255), 15);
e.Graphics.DrawLine(opaquePen, 0, 20, 100, 20);
e.Graphics.DrawLine(semiTransPen, 0, 40, 100, 40);
e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;
e.Graphics.DrawLine(semiTransPen, 0, 60, 100, 60);
編譯程式碼
上述範例是專為與 Windows Form 搭配使用而設計的,而且它需要 PaintEventArgse (即 Paint 事件處理常式的參數)。