Практическое руководство. Задание толщины и выравнивания пера
Обновлен: Ноябрь 2007
При создании объекта Pen можно указать толщину пера в качестве одного из параметров конструктора. Можно также изменять толщину пера с помощью свойства Width класса Pen.
Абстрактная линия имеет нулевую толщину. При рисовании линии толщиной в одну точку точки центрируются по абстрактной линии. Если толщина рисуемой линии больше одной точки, то точки либо центрируются по абстрактной линии, либо располагаются по одну сторону от этой линии. Для указания того, как следует располагать точки, рисуемые некоторым пером, относительно абстрактной линии, служит свойство выравнивания соответствующего объекта Pen.
Значения Center, Outset и Inset, которые используются в приведенном ниже примере кода, являются членами перечисления PenAlignment.
В следующем примере кода дважды выполняется рисование линии. В первый раз линия рисуется черным пером толщиной 1, а во второй — зеленым пером толщиной 10.
Изменение толщины пера
Установите значение свойства Alignment равным to Center (значение по умолчанию), чтобы указать, что рисуемые зеленым пером точки должны быть центрированы по абстрактной линии. Нарисованная линия показана на следующем рисунке.
В следующем примере кода дважды выполняется рисование прямоугольника. В первый раз прямоугольник рисуется черным пером толщиной 1, а во второй — зеленым пером толщиной 10.
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)
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);
Изменение выравнивания пера
Установите значение свойства Alignment равным Center, чтобы указать, что рисуемые зеленым пером точки должны быть центрированы по границе прямоугольника.
Нарисованный прямоугольник показан на следующем рисунке.
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)
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);
Создание вложенного пера
Измените выравнивание зеленого пера, модифицировав третью инструкцию приведенного выше примера следующим образом:
greenPen.Alignment = PenAlignment.Inset
greenPen.Alignment = PenAlignment.Inset;
Теперь точки жирной зеленой линии располагаются внутри прямоугольника, как показано на следующем рисунке.