如何:绘制用纹理填充的线条

不绘制纯色填充的线条的话,可以绘制带纹理的线条。 若要绘制带纹理的直线和曲线,请创建一个 TextureBrush 对象,并将此 TextureBrush 对象传递给 Pen 构造函数。 与纹理画笔关联的位图用于平铺平面(不可见),当笔绘制直线或曲线时,笔划会露出平铺纹理的某些像素。

示例

以下示例从文件 Texture1.jpg 创建 Bitmap 对象。 此位图用于构造 TextureBrush 对象,TextureBrush 对象用于构造 Pen 对象。 对 DrawImage 的调用将绘制位图,其左上角位于 (0, 0)。 对 DrawEllipse 的调用使用 Pen 对象来绘制带纹理的椭圆。

下图显示了位图和带纹理的椭圆:

Screenshot that shows the bitmap and the textured ellipse.

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 窗体并处理窗体的 Paint 事件。 将前面的代码粘贴到 Paint 事件处理程序中。 将 Texture.jpg 替换为系统中有效的图像。

另请参阅