更新:2007 年 11 月
在创建 Pen 时,可将笔的宽度作为参数之一提供给构造函数。还可用 Pen 类的 Width 属性更改笔的宽度。
理论线条的宽度为 0。当绘制一条 1 个像素宽的线条时,像素以理论线条为中心线分布。如果绘制的线条宽度大于 1 个像素,则这些像素要么以理论线条为中心线分布,要么出现在理论线条的一侧。可设置 Pen 的笔对齐方式属性,以确定用该笔绘制的像素相对于理论线条如何定位。
在下面的代码示例中显示的值 Center、Outset 和 Inset 为 PenAlignment 枚举的成员。
下面的代码示例绘制一段线条两次:一次用宽度为 1 的黑色钢笔,一次用宽度为 10 的绿色钢笔。
改变钢笔的宽度
- 将 Alignment 属性的值设置为 Center(默认值),以指定用绿色钢笔绘制的像素以理论线条为中心线分布。下面的插图显示结果线条。 .gif) - 下面的代码示例绘制一个矩形两次:一次用宽度为 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,以指定用绿色钢笔绘制的像素以矩形边界为中心分布。 - 下面的插图显示结果矩形。 .gif) - 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;- 现在,绿色宽线条中的像素出现在矩形的内侧,如下面的插图所示。 .gif)