Condividi tramite


Procedura: Impostare la larghezza e l'allineamento della penna

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

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 disegni una linea che ha più di un pixel di larghezza, i pixel sono centrati sulla linea teorica o appaiono su uno dei lati della linea teorica. È possibile impostare la proprietà di allineamento della penna di un 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 proprietà Alignment 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.

    Linea sottile nera con evidenziazione verde.

    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 proprietà Alignment 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:

    Rettangolo disegnato con linee sottili nere con evidenziazione 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)
    
    

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:

    Rettangolo disegnato con linee nere con la linea verde larga all'interno.

Vedere anche