Gör så här: Rita ogenomskinliga och halvtransparenter
När du ritar en linje måste du skicka ett Pen objekt till DrawLine-metoden för klassen Graphics. En av parametrarna i Pen konstruktorn är ett Color objekt. Om du vill rita en ogenomskinlig linje anger du färgens alfakomponent till 255. Om du vill rita en halvtransparent linje anger du alfakomponenten till valfritt värde från 1 till 254.
När du ritar en halvtransparent linje över en bakgrund blandas linjens färg med färgerna i bakgrunden. Alfakomponenten anger hur linje- och bakgrundsfärgerna blandas. alfavärden nära 0 lägger mer vikt på bakgrundsfärgerna och alfavärden nära 255 lägger mer vikt på linjefärgen.
Exempel
I följande exempel ritas en bitmapp och tre rader ritas som använder bitmappen som bakgrund. Den första raden använder en alfakomponent på 255, så den är ogenomskinlig. Den andra och tredje raden använder en alfakomponent på 128, så de är halvtransparent; du kan se bakgrundsbilden genom raderna. Instruktionen som anger egenskapen CompositingQuality gör att blandningen för den tredje raden görs tillsammans med gammakorrigering.
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);
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)
Följande bild visar utdata från följande kod:
Kompilera koden
Föregående exempel är utformat för användning med Windows Forms och kräver PaintEventArgse
, som är en parameter för Paint händelsehanterare.
Se även
.NET Desktop feedback