Практическое руководство. Задание толщины и выравнивания пера

При создании объекта Pen можно указать толщину пера в качестве одного из аргументов конструктора. Можно также изменять толщину пера с помощью свойства Width класса Pen.

Абстрактная линия имеет нулевую толщину. При рисовании линии толщиной в один пиксель пиксели центрируются по абстрактной линии. Если толщина рисуемой линии больше одного пикселя, то пиксели либо центрируются по абстрактной линии, либо располагаются по одну сторону от этой линии. Для указания того, как следует располагать пиксели, рисуемые некоторым пером, относительно абстрактной линии, служит свойство выравнивания соответствующего объекта Pen.

Значения Center, Outset и Inset, которые используются в приведенных ниже примерах кода, являются членами перечисления PenAlignment.

В следующем примере кода линия рисуется дважды: в первый раз — черным пером толщиной 1, а во второй — зеленым пером толщиной 10.

Изменение толщины пера

  • Установите значение свойства Alignment равным Center (значение по умолчанию), чтобы указать, что рисуемые зеленым пером пиксели должны быть центрированы по абстрактной линии. Нарисованная линия показана на рисунке ниже.

    A black thin line with green highlight.

    В следующем примере кода прямоугольник рисуется дважды: в первый раз — черным пером толщиной 1, а во второй — зеленым пером толщиной 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)
    
    

Изменение выравнивания пера

  • Установите значение свойства Alignment равным Center, чтобы указать, что рисуемые зеленым пером пиксели должны быть центрированы по границе прямоугольника.

    Нарисованный прямоугольник показан на рисунке ниже.

    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)
    
    

Создание вложенного пера

  • Измените выравнивание зеленого пера, модифицировав третий оператор в приведенном выше примере следующим образом:

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

    Теперь пиксели жирной зеленой линии располагаются внутри прямоугольника, как показано на рисунке ниже.

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

См. также