如何:设置钢笔的宽度和对齐方式

创建 Pen 时,可将笔宽度作为参数之一提供给构造函数。 还可以使用 Pen 类的 Width 属性更改笔宽度。

理论线的宽度为 0。 绘制宽度为 1 个像素的线时,像素以理论线为中心。 如果绘制的线宽度超过 1 个像素,则像素要么以理论线为中心,要么显示在理论线的一侧。 可设置 Pen 的笔对齐属性来确定使用该笔绘制的像素将如何相对于理论线定位。

以下代码示例中出现的值 CenterOutsetInsetPenAlignment 枚举的成员。

下面的代码示例绘制线两次:一次用宽度为 1 的黑色笔,一次用宽度为 10 的绿色笔。

改变笔的宽度

  • Alignment 属性的值设置为 Center(默认值)以指定用绿色笔绘制的像素将以理论线为中心。 下图显示了生成的线。

    A black thin line with green highlight.

    下面的代码示例绘制矩形两次:一次用宽度为 1 的黑色笔,一次用宽度为 10 的绿色笔。

    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);
    
    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)
    
    

更改笔的对齐方式

  • Alignment 属性的值设置为 Center 以指定用绿色笔绘制的像素将以矩形边界为中心。

    下图显示了生成的矩形:

    A rectangle drawn with black thin lines with green highlight.

    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);
    
    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)
    
    

创建内嵌笔

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

    greenPen.Alignment = PenAlignment.Inset;
    
    greenPen.Alignment = PenAlignment.Inset
    
    

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

    A rectangle drawn with black lines with the wide green line inside.

另请参阅