Partilhar via


Como: Alinhamento e definir a largura de caneta

Quando você cria um Pen, você pode fornecer a largura da caneta como um dos argumentos para o construtor. Você também pode alterar a largura de caneta com o Width propriedade da Pen classe.

Uma linha teórica tem uma largura 0. Quando você desenha uma linha de 1 pixel de largura, os pixels são centralizados na linha teórica. Se você desenhar uma linha de mais de um pixel de largura, os pixels são centralizados ou na linha teórica ou aparecem em um dos lados da linha teórica. Você pode definir a propriedade de alinhamento de caneta de um Pen para determinar como os pixels desenhados com a caneta serão posicionados em relação a linhas teórica.

Os valores Center, Outset, e Inset que aparecem nas seguintes exemplos de código são membros do PenAlignment enumeração.

O exemplo de código a seguir desenha uma linha, duas vezes: uma vez com uma caneta preta de 1 de largura e uma vez com uma caneta verde da largura de 10.

Para variar a largura de uma caneta

  • Definir o valor de Alignment propriedade para Center (padrão) para especificar que os pixels desenhadas com a caneta verde serão centralizados na linha teórica. A ilustração a seguir mostra a linha resultante.

    Canetas

    O exemplo de código a seguir desenha um retângulo duas vezes: uma vez com uma caneta preta de 1 de largura e uma vez com uma caneta verde da largura de 10.

            Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
            Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
            greenPen.Alignment = PenAlignment.Center
    
            ' Draw the line with the wide green pen.
            e.Graphics.DrawLine(greenPen, 10, 100, 100, 50)
    
            ' Draw the line with the thin black pen.
            e.Graphics.DrawLine(blackPen, 10, 100, 100, 50)
    
    
    Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1);
    Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10);
    greenPen.Alignment = PenAlignment.Center;
    
    // Draw the line with the wide green pen.
    e.Graphics.DrawLine(greenPen, 10, 100, 100, 50);
    
    // Draw the line with the thin black pen.
    e.Graphics.DrawLine(blackPen, 10, 100, 100, 50);
    

Para alterar o alinhamento de uma caneta

  • Definir o valor de Alignment propriedade para Center para especificar que os pixels desenhados com a caneta verde serão centralizados no limite do retângulo.

    A ilustração a seguir mostra o retângulo resultante.

    Canetas

            Dim blackPen As New Pen(Color.FromArgb(255, 0, 0, 0), 1)
            Dim greenPen As New Pen(Color.FromArgb(255, 0, 255, 0), 10)
            greenPen.Alignment = PenAlignment.Center
    
            ' Draw the rectangle with the wide green pen.
            e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50)
    
            ' Draw the rectangle with the thin black pen.
            e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50)
    
    
    Pen blackPen = new Pen(Color.FromArgb(255, 0, 0, 0), 1);
    Pen greenPen = new Pen(Color.FromArgb(255, 0, 255, 0), 10);
    greenPen.Alignment = PenAlignment.Center;
    
    // Draw the rectangle with the wide green pen.
    e.Graphics.DrawRectangle(greenPen, 10, 100, 50, 50);
    
    // Draw the rectangle with the thin black pen.
    e.Graphics.DrawRectangle(blackPen, 10, 100, 50, 50);
    

Para criar uma caneta de baixo-relevo

  • Altere o alinhamento da caneta verde, modificando a terceira instrução no exemplo de código anterior da seguinte maneira:

            greenPen.Alignment = PenAlignment.Inset
    
    
    greenPen.Alignment = PenAlignment.Inset;
    

    Agora os pixels na linha verde largo aparecem no interior do retângulo como mostrado na ilustração a seguir.

    Canetas

Consulte também

Outros recursos

Usando uma caneta para desenhar linhas e formas

Elementos gráficos e desenho em formulários do Windows