Procedura: impostare la larghezza e l'allineamento di un oggetto Pen

Quando si crea un Penoggetto , è possibile fornire la larghezza della penna come uno degli argomenti al costruttore. È anche possibile modificare la larghezza della penna con la Width proprietà della Pen classe .

Una linea teorica ha una larghezza pari a 0. Quando si disegna una linea larga 1 pixel, i pixel vengono centrati sulla linea teorica. Se disegnare una linea che ha più di un pixel di larghezza, i pixel sono centrati sulla linea teorica o appaiono su un lato della linea teorica. È possibile impostare la proprietà di allineamento della penna di un oggetto Pen per determinare il modo in cui i pixel disegnati con tale penna verranno posizionati rispetto alle linee teorice.

I valori Center, Outsete Inset visualizzati negli esempi di codice seguenti sono membri dell'enumerazione PenAlignment .

L'esempio di codice seguente disegna una riga due volte: una volta con una penna nera di larghezza 1 e una volta con una penna verde di larghezza 10.

Per variare la larghezza di una penna

  • Impostare il valore della Alignment proprietà su Center (impostazione predefinita) per specificare che i pixel disegnati con la penna verde verranno centrati sulla linea teorica. La figura seguente mostra la riga risultante.

    A black thin line with green highlight.

    L'esempio di codice seguente disegna un rettangolo due volte: una volta con una penna nera di larghezza 1 e una volta con una penna verde di larghezza 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)
    
    

Per modificare l'allineamento di una penna

  • Impostare il valore della Alignment proprietà su Center per specificare che i pixel disegnati con la penna verde verranno centrati sul limite del rettangolo.

    La figura seguente mostra il rettangolo risultante:

    A rectangle drawn with black thin lines with green highlight.

    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)
    
    

Per creare una penna inset

  • Modificare l'allineamento della penna verde modificando la terza istruzione nell'esempio di codice precedente come indicato di seguito:

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

    Ora i pixel nella linea verde larga vengono visualizzati all'interno del rettangolo, come illustrato nella figura seguente:

    A rectangle drawn with black lines with the wide green line inside.

Vedi anche