Partilhar via


Como: Desenhar linhas opaca e semitransparente

Quando você desenha uma linha, você deve passar um Pen objeto para o DrawLine método para o Graphics classe. Um dos parâmetros do Pen construtor é um Color objeto. Para desenhar uma linha opaca, conjunto o componente alfa da cor a 255.Para desenhar uma linha semitransparente, configurar o componente alfa para qualquer valor de 1 a 254.

Quando você desenha uma linha semitransparente em um plano de fundo, cor da linha é combinado com as cores do plano de fundo.O componente alfa Especifica como as cores de plano de fundo e linha são misturadas; valores alfa perto 0 coloque peso mais as cores de plano de fundo e valores alfa perto 255 colocar mais peso na cor da linha.

Exemplo

O exemplo a seguir desenha um bitmap e, em seguida, desenha três linhas que usar o bitmap sistema autônomo plano de fundo.A primeira linha usa um componente alfa de 255, portanto é opaco.As segunda e terceira linhas usam um componente de alfa de 128, para que sejam semitransparentes; você pode ver a imagem de plano de fundo por linhas.A demonstrativo que define o CompositingQuality propriedade faz com que a mistura para a linha da terceira ser concluído em conjunto com correção gama.

A ilustração a seguir mostra a saída de código a seguir.

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);

Compilando o código

The preceding example is designed for use with Windows Forms, and it requires PaintEventArgse, which is a parameter of the Paint event handler.

Consulte também

Tarefas

Como: Fornecer seu Controlarar de um plano de fundo transparente

Como: Criar formulários do Windows transparente

Como: Desenhar com pincéis opaco e semitransparente

Outros recursos

Linhas de mistura alfa e preenchimentos