Инструкция по: Настройка ширины пера и выравнивания
При создании 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
Теперь пиксели в широкой зеленой линии отображаются внутри прямоугольника, как показано на следующем рисунке:
См. также
.NET Desktop feedback