设置笔宽度和对齐方式
创建 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);
现在,宽绿线中的像素显示在矩形内部,如下图所示。