Procedimiento para establecer el ancho y la alineación del lápiz

Al crear un objeto Pen, puede proporcionar el ancho del lápiz como uno de los argumentos al constructor. También puede cambiar el ancho del lápiz con la propiedad Width de la clase Pen.

Una línea teórica tiene un ancho de 0. Cuando dibuja una línea que tiene un ancho de un píxel, los píxeles se centran en la línea teórica. Si dibuja una línea que tiene más de un píxel de ancho, los píxeles se centran en la línea teórica o parecen a un lado de la línea. Puede establecer la propiedad de alineación del lápiz de un objeto Pen para determinar cómo se colocarán los píxeles dibujados con dicho lápiz en relación con las líneas teóricas.

Los valores Center, Outset y Inset que aparecen en los ejemplos de código siguientes son miembros de la enumeración PenAlignment.

En el ejemplo de código siguiente se dibuja una línea dos veces: una vez con un lápiz negro con un ancho de 1 y una vez con un lápiz verde con un ancho de 10.

Para variar el ancho de un lápiz

  • Establezca el valor de la propiedad Alignment en Center (valor predeterminado) para especificar que los píxeles dibujados con el lápiz verde se centrarán en la línea teórica. En la ilustración siguiente se muestra la línea resultante.

    Línea fina negra con resaltado verde.

    En el ejemplo de código siguiente se dibuja un rectángulo dos veces: una vez con un lápiz negro con un ancho de 1 y una vez con un lápiz verde con un ancho de 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)
    
    

Para cambiar la alineación de un lápiz

  • Establezca el valor de la propiedad Alignment en Center para especificar que los píxeles dibujados con el lápiz verde se centrarán en el límite del rectángulo.

    En la ilustración siguiente se muestra el rectángulo resultante:

    Rectángulo dibujado con líneas finas negras con resaltado 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)
    
    

Para crear un lápiz de interior

  • Cambie la alineación del lápiz verde modificando la tercera instrucción del ejemplo de código anterior de la manera siguiente:

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

    Ahora los píxeles de la línea verde ancha aparecen en el interior del rectángulo, como se muestra en la ilustración siguiente:

    Rectángulo dibujado con líneas negras con la línea verde ancha dentro.

Consulte también