Porady: rysowanie nieprzezroczystych i półprzezroczystych linii

Podczas rysowania wiersza należy przekazać Pen obiekt do DrawLine metody Graphics klasy. Jednym z parametrów konstruktora Pen jest Color obiekt. Aby narysować nieprzezroczystą linię, ustaw składnik alfa koloru na 255. Aby narysować linię półprzezroczystą, ustaw składnik alfa na dowolną wartość z zakresu od 1 do 254.

Gdy narysujesz półprzezroczystą linię na tle, kolor linii jest mieszany z kolorami tła. Składnik alfa określa, jak są mieszane kolory linii i tła; wartości alfa w pobliżu 0 umieść większą wagę na kolorach tła, a wartości alfa w pobliżu 255 umieść większą wagę na kolorze linii.

Przykład

Poniższy przykład rysuje mapę bitową, a następnie rysuje trzy linie, które używają mapy bitowej jako tła. Pierwszy wiersz używa składnika alfa 255, więc jest nieprzezroczystym. Drugie i trzecie wiersze używają składnika alfa 128, więc są półprzezroczyste; obraz tła można wyświetlić za pomocą wierszy. Instrukcja, która ustawia CompositingQuality właściwość powoduje mieszanie trzeciego wiersza w połączeniu z korektą gamma.

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)

Poniższa ilustracja przedstawia dane wyjściowe następującego kodu:

Illustration that shows opaque and semitransparent output

Kompilowanie kodu

Powyższy przykład jest przeznaczony do użycia z formularzami Windows Forms i wymaga PaintEventArgseparametru , który jest parametrem Paint programu obsługi zdarzeń.

Zobacz też