Compartir a través de


Cómo: Establecer el ancho y la alineación del lápiz

Al crear un 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 Width propiedad de la Pen clase .

Una línea teórica tiene un ancho de 0. Cuando dibuja una línea que tiene un ancho de 1 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 aparecen a un lado de la línea teórica. Puede establecer la propiedad de alineación del lápiz de un Pen para determinar cómo se posicionarán los píxeles dibujados con ese lápiz en relación con las líneas teóricas.

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

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

Para variar el ancho de un lápiz

  • Establezca el valor de la Alignment propiedad Center en (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 de ancho 1 y una vez con un lápiz verde de ancho 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 Alignment propiedad 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 insertado

  • Cambie la alineación del lápiz verde modificando la tercera instrucción del ejemplo de código anterior como se indica a continuación:

    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