Поделиться через


Инструкция по: Настройка ширины пера и выравнивания

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

Теоретические линии имеют ширину 0. При рисовании линии, которая имеет ширину 1 пикселя, пиксели находятся в центре теоретических линий. Если вы рисуете линию, которая имеет более одного пикселя ширины, то пиксели находятся в центре теоретических линий или отображаются на одной стороне теоретических линий. Можно задать свойство выравнивания пера Pen, чтобы определить, как пиксели, рисуемые с помощью этого пера, будут размещаться относительно теоретических линий.

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

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

Изменение ширины пера

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

    черная тонкая линия с зеленым выделением.

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

    На следующем рисунке показан результирующий прямоугольник:

    прямоугольник, рисуемый черными тонкими линиями с зеленым выделением.

    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
    
    

    Теперь пиксели в широкой зеленой линии отображаются внутри прямоугольника, как показано на следующем рисунке:

    прямоугольник, рисуемый черными линиями с широкой зеленой линией внутри.

См. также