Como: definir a largura e o alinhamento de uma canetaHow to: Set Pen Width and Alignment

Quando você cria um Pen, você pode fornecer a largura da caneta como um dos argumentos para o construtor.When you create a Pen, you can supply the pen width as one of the arguments to the constructor. Você também pode alterar a largura da caneta com a Width propriedade do Pen classe.You can also change the pen width with the Width property of the Pen class.

Uma linha teórica tem uma largura de 0.A theoretical line has a width of 0. Quando você desenha uma linha com um pixel de largura, os pixels são centralizados na linha teórica.When you draw a line that is 1 pixel wide, the pixels are centered on the theoretical line. Se você desenhar uma linha contendo mais de um pixel de largura, os pixels serão centralizados na linha teórica ou aparecerão em um dos lados da linha teórica.If you draw a line that is more than one pixel wide, the pixels are either centered on the theoretical line or appear to one side of the theoretical line. Você pode definir a propriedade de alinhamento da caneta de um Pen para determinar como os pixels desenhados com essa caneta serão posicionados em relação ao linhas teóricas.You can set the pen alignment property of a Pen to determine how the pixels drawn with that pen will be positioned relative to theoretical lines.

Os valores Center, Outset, e Inset que aparecem nas seguintes exemplos de código são membros do PenAlignment enumeração.The values Center, Outset, and Inset that appear in the following code examples are members of the PenAlignment enumeration.

O exemplo de código a seguir desenha uma linha duas vezes: uma vez com uma caneta preta da largura 1 e uma vez com uma caneta verde da largura 10.The following code example draws a line twice: once with a black pen of width 1 and once with a green pen of width 10.

Variar a largura da canetaTo vary the width of a pen

  • Defina o valor da Alignment propriedade para Center (o padrão) para especificar que os pixels desenhados com a caneta verde serão centralizados na linha teórica.Set the value of the Alignment property to Center (the default) to specify that pixels drawn with the green pen will be centered on the theoretical line. A ilustração a seguir mostra a linha resultante.The following illustration shows the resulting line.

    Uma linha preta fina com realce verde.

    O exemplo de código a seguir desenha um retângulo duas vezes: uma vez com uma caneta preta da largura 1 e uma vez com uma caneta verde da largura 10.The following code example draws a rectangle twice: once with a black pen of width 1 and once with a green pen of width 10.

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

Alterar o alinhamento de uma canetaTo change the alignment of a pen

  • Defina o valor da Alignment propriedade para Center para especificar que os pixels desenhados com a caneta verde serão centralizados no limite do retângulo.Set the value of the Alignment property to Center to specify that the pixels drawn with the green pen will be centered on the boundary of the rectangle.

    A ilustração a seguir mostra o retângulo resultante:The following illustration shows the resulting rectangle:

    Um retângulo desenhado com linhas finas pretas com realce verde.

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

Criar uma caneta de baixo-relevoTo create an inset pen

  • Altere o alinhamento da caneta verde modificando a terceira instrução no exemplo de código anterior da seguinte maneira:Change the green pen's alignment by modifying the third statement in the preceding code example as follows:

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

    Agora os pixels na linha verde larga aparecem no interior do retângulo conforme mostrado na ilustração a seguir:Now the pixels in the wide green line appear on the inside of the rectangle as shown in the following illustration:

    Um retângulo desenhado com linhas pretas com a linha verde larga dentro.

Consulte tambémSee also