Vorgehensweise: Festlegen von Stiftbreite und -ausrichtung

Wenn Sie einen Pen erstellen, können Sie die Stiftbreite als eines der Argumente für den Konstruktor angeben. Sie können die Stiftbreite auch mithilfe der Eigenschaft Width der Klasse Pen ändern.

Eine theoretische Linie hat eine Breite von 0. Wenn Sie eine Linie zeichnen, die 1 Pixel breit ist, werden die Pixel auf der theoretischen Linie zentriert. Wenn Sie eine Linie zeichnen, die mehr als ein Pixel breit ist, werden die Pixel entweder auf der theoretischen Linie zentriert oder erscheinen auf einer Seite der theoretischen Linie. Sie können die Eigenschaft zur Stiftausrichtung für einen Pen festlegen, um zu bestimmen, wie die mit diesem Stift gezeichneten Pixel relativ zu den theoretischen Linien positioniert werden sollen.

Die in den folgenden Codebeispielen verwendeten Werte Center, Outset und Inset sind Member der Enumeration PenAlignment.

Das folgende Codebeispiel zeichnet eine Linie zweimal: einmal mit einem schwarzen Stift der Breite 1 und einmal mit einem grünen Stift der Breite 10.

So variieren Sie die Breite eines Stifts

  • Legen Sie den Wert der Eigenschaft Alignment auf Center (die Standardeinstellung) fest, um anzugeben, dass die mit dem grünen Stift gezeichneten Pixel auf der theoretischen Linie zentriert werden sollen. Die folgende Abbildung zeigt die resultierende Linie.

    A black thin line with green highlight.

    Das folgende Codebeispiel zeichnet ein Rechteck zweimal: einmal mit einem schwarzen Stift der Breite 1 und einmal mit einem grünen Stift der Breite 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)
    
    

So ändern Sie die Ausrichtung eines Stifts

  • Legen Sie den Wert der Eigenschaft Alignment auf Center fest, um anzugeben, dass die mit dem grünen Stift gezeichneten Pixel auf der Begrenzung des Rechtecks zentriert werden sollen.

    Die folgende Abbildung zeigt das resultierende Rechteck:

    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)
    
    

So erstellen Sie einen Inset-Stift

  • Ändern Sie die Ausrichtung des grünen Stifts, indem Sie die dritte Anweisung im vorangegangenen Codebeispiel wie folgt abändern:

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

    Jetzt werden die Pixel der breiten grünen Linie auf der Innenseite des Rechtecks angezeigt, wie in der folgenden Abbildung dargestellt:

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

Siehe auch