Porady: ustawianie szerokości i wyrównania pióra

Podczas tworzenia obiektu można podać szerokość pióra Penjako jeden z argumentów konstruktora. Możesz również zmienić szerokość pióra za Width pomocą właściwości Pen klasy .

Linia teoretyczna ma szerokość 0. Gdy narysujesz linię o szerokości 1 pikseli, piksele są wyśrodkowane na linii teoretycznej. Jeśli narysujesz linię o szerokości więcej niż jednego piksela, piksele są wyśrodkowane na linii teoretycznej lub pojawiają się po jednej stronie linii teoretycznej. Właściwość wyrównania Pen pióra można ustawić, aby określić, w jaki sposób piksele rysowane za pomocą tego pióra będą ustawione względem linii teoretycznych.

CenterWartości , OutsetiInset, które są wyświetlane w poniższych przykładach kodu, są elementami członkowskimi PenAlignment wyliczenia.

Poniższy przykład kodu rysuje wiersz dwa razy: raz z czarnym piórem o szerokości 1 i raz zielonym piórem o szerokości 10.

Aby zmienić szerokość pióra

  • Ustaw wartość Alignment właściwości na Center (wartość domyślna), aby określić, że piksele rysowane za pomocą zielonego pióra będą wyśrodkowane w wierszu teoretycznym. Poniższa ilustracja przedstawia wynikową linię.

    A black thin line with green highlight.

    Poniższy przykład kodu rysuje prostokąt dwa razy: raz z czarnym piórem o szerokości 1 i raz zielonym piórem o szerokości 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)
    
    

Aby zmienić wyrównanie pióra

  • Ustaw wartość Alignment właściwości, aby Center określić, że piksele rysowane za pomocą zielonego pióra będą wyśrodkowane na granicy prostokąta.

    Poniższa ilustracja przedstawia wynikowy prostokąt:

    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)
    
    

Aby utworzyć pióro inset

  • Zmień wyrównanie zielonego pióra, modyfikując trzecią instrukcję w poprzednim przykładzie kodu w następujący sposób:

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

    Teraz piksele w szerokiej zielonej linii pojawiają się wewnątrz prostokąta, jak pokazano na poniższej ilustracji:

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

Zobacz też