设置笔宽度和对齐方式

创建 Pen 对象时,可以将笔宽度作为参数之一提供给构造函数。 还可以使用 Pen::SetWidth 方法更改笔宽度。

理论线的宽度为零。 绘制线条时,像素以理论线为中心。 以下示例绘制指定线条两次:一次绘制宽度为 1 的黑色笔,一次绘制宽度为 10 的绿色笔。

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the line with the wide green pen.
stat = graphics.DrawLine(&greenPen, 10, 100, 100, 50);

// Draw the same line with the thin black pen.
stat = graphics.DrawLine(&blackPen, 10, 100, 100, 50);

下图显示了上述代码的输出。 绿色像素和黑色像素以理论线为中心。

图中显示了一条由宽绿线包围的细对角线、黑色线条

以下示例绘制指定矩形两次:一次绘制宽度为 1 的黑色笔,一次绘制宽度为 10 的绿色笔。 代码将 PenAlignmentCenter (PenAlignment 枚举) 元素的值传递给 Pen::SetAlignment 方法,以指定用绿色笔绘制的像素在矩形边界上居中。

Pen blackPen(Color(255, 0, 0, 0), 1);
Pen greenPen(Color(255, 0, 255, 0), 10);
stat = greenPen.SetAlignment(PenAlignmentCenter);

// Draw the rectangle with the wide green pen.
stat = graphics.DrawRectangle(&greenPen, 10, 100, 50, 50);

// Draw the same rectangle with the thin black pen.
stat = graphics.DrawRectangle(&blackPen, 10, 100, 50, 50);

下图显示了上述代码的输出。 绿色像素以理论矩形为中心,该矩形由黑色像素表示。

显示矩形形状中细黑线的插图,周围有一条较宽的绿线

可以通过修改前面示例中的第三条语句来更改绿色笔的对齐方式,如下所示:

stat = greenPen.SetAlignment(PenAlignmentInset);

现在,宽绿线中的像素显示在矩形内部,如下图所示。

图示显示斜切形状中的细黑线,包含同一形状的宽绿线