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


Как: Нарисовать линию, заполненную текстурой

Вместо рисования линии с сплошным цветом можно нарисовать линию с текстурой. Чтобы нарисовать линии и кривые с текстурой, создайте объект TextureBrush и передайте этот объект TextureBrush в конструктор Pen. Растровое изображение, связанное с кистью текстуры, используется для заполнения плоскости (невидимо), и когда перо рисует линию или кривую, штрих пера обнажает определенные пиксели заполненной текстуры.

Пример

В следующем примере создается объект Bitmap из файла Texture1.jpg. Эта растровая карта используется для создания объекта TextureBrush, а объект TextureBrush используется для создания объекта Pen. Вызов DrawImage рисует растровое изображение с его верхним левым углом в точке (0, 0). Вызов DrawEllipse использует объект Pen для рисования текстурированного эллипса.

На следующем рисунке показаны растровое изображение и текстурированный эллипс.

снимок экрана, показывающий битовое изображение и текстурированную эллипсу.

Bitmap bitmap = new Bitmap("Texture1.jpg");
TextureBrush tBrush = new TextureBrush(bitmap);
Pen texturedPen = new Pen(tBrush, 30);

e.Graphics.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height);
e.Graphics.DrawEllipse(texturedPen, 100, 20, 200, 100);
Dim bitmap As New Bitmap("Texture1.jpg")
Dim tBrush As New TextureBrush(bitmap)
Dim texturedPen As New Pen(tBrush, 30)

e.Graphics.DrawImage(bitmap, 0, 0, bitmap.Width, bitmap.Height)
e.Graphics.DrawEllipse(texturedPen, 100, 20, 200, 100)

Компиляция кода

Создайте форму Windows Form и обработайте событие Paint формы. Вставьте предыдущий код в обработчик событий Paint. Замените Texture.jpg допустимым изображением в системе.

См. также