Compartilhar via


Pincéis e formas preenchidas em GDI+

Uma forma fechada, como, por exemplo, um retângulo ou uma elipse, consiste em uma estrutura de tópicos e um interior. O contorno é desenhado com uma caneta e o interior é preenchido com um pincel. GDI+fornece várias classes de pincel para preencher os interiores de formas fechadas: SolidBrush, HatchBrush, , TextureBrush, LinearGradientBrush, e PathGradientBrush. Todas essas classes herdam o Brush classe. A ilustração a seguir mostra um retângulo preenchido com um pincel sólido e uma elipse preenchida com um pincel de hachura.

Formas preenchidas

Pincéis sólidas

Para preencher uma forma fechada, você precisa de uma instância de Graphics classe e um Brush. A instância da Graphics classe fornece métodos, como FillRectangle e FillEllipsee o Brush armazena os atributos de preenchimento, como cor e padrão. O Brush é passado como um dos argumentos para o método de preenchimento. O exemplo de código a seguir mostra como preencher uma elipse com uma cor sólida de vermelha.

        Dim mySolidBrush As New SolidBrush(Color.Red)
        myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40)

SolidBrush mySolidBrush = new SolidBrush(Color.Red);
myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40);
ObservaçãoObservação

No exemplo anterior, o pincel é do tipo SolidBrush, que herda de Brush.

Hachura pincéis

Quando você preenche uma forma com um pincel de hachura, você deve especificar uma cor de primeiro plano, uma cor de plano de fundo e um estilo de hachura. A cor de primeiro plano é a cor de hachura.

        Dim myHatchBrush As _
           New HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green)

HatchBrush myHatchBrush =
   new HatchBrush(HatchStyle.Vertical, Color.Blue, Color.Green);

GDI+fornece mais de 50 estilos de hachura; os estilos de três mostrados na ilustração a seguir são Horizontal, ForwardDiagonal, e Cross.

Formas preenchidas

Pincéis de textura

Com um pincel de textura, você pode preencher uma forma com um padrão armazenado em um bitmap. Por exemplo, suponha que a imagem a seguir é armazenada em um arquivo de disco chamado MyTexture.bmp.

Forma preenchida

O exemplo de código a seguir mostra como preencher uma elipse, repetindo a imagem armazenada em MyTexture.bmp.

        Dim myImage As Image = Image.FromFile("MyTexture.bmp")
        Dim myTextureBrush As New TextureBrush(myImage)
        myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50)

Image myImage = Image.FromFile("MyTexture.bmp");
TextureBrush myTextureBrush = new TextureBrush(myImage);
myGraphics.FillEllipse(myTextureBrush, 0, 0, 100, 50);

A ilustração a seguir mostra a elipse preenchida.

Forma preenchida

Pincéis em dégradé

GDI+fornece dois tipos de pincéis em dégradé: linear e caminho. Você pode usar um pincel linear de gradiente para preencher uma forma com cor altera gradualmente mover através da forma horizontal, vertical ou diagonal. O exemplo de código a seguir mostra como preencher uma elipse com um pincel de gradiente horizontal que muda de azul para verde, ao mover para a borda direita da borda esquerda da elipse.

        Dim myLinearGradientBrush As New LinearGradientBrush( _
           myRectangle, _
           Color.Blue, _
           Color.Green, _
           LinearGradientMode.Horizontal)
        myGraphics.FillEllipse(myLinearGradientBrush, myRectangle)

LinearGradientBrush myLinearGradientBrush = new LinearGradientBrush(
   myRectangle,
   Color.Blue,
   Color.Green,
   LinearGradientMode.Horizontal);
myGraphics.FillEllipse(myLinearGradientBrush, myRectangle);

A ilustração a seguir mostra a elipse preenchida.

Forma preenchida

Um pincel de gradiente de caminho pode ser configurado para alterar a cor à medida que você move do Centro de uma forma na direção do canto.

Forma preenchida

Pincéis de gradientes de caminho são bastante flexíveis. O pincel de gradiente usado para preencher o triângulo nas seguintes alterações de ilustração gradualmente a partir do vermelho no centro para cada uma das três cores diferentes nos vértices.

Forma preenchida

Consulte também

Tarefas

Como: Desenhar um retângulo preenchido em um Windows Form

Como: Desenhar uma elipse preenchida em um Windows Form

Referência

System.Drawing.SolidBrush

System.Drawing.Drawing2D.HatchBrush

System.Drawing.TextureBrush

System.Drawing.Drawing2D.LinearGradientBrush

Outros recursos

Linhas, curvas e formas