方法: ペンの幅と配置を設定する

Pen を作成する際には、コンストラクターの引数の 1 つとして、ペンの幅を指定できます。 ペンの幅は、Pen クラスの Width プロパティを使用して変更することもできます。

理論上の線の幅は 0 です。 幅が 1 ピクセルの線を描画すると、そのピクセルは理論上の線を中心にして配置されます。 幅が 1 ピクセルを超える線を描画した場合、ピクセルは理論上の線を中心にして配置されるか、理論上の線の片側に表示されます。 Pen のペンの配置プロパティを設定すると、そのペンで描画されるピクセルの、理論上の線に対する相対的配置方法を決定できます。

次のコード例に示されている、CenterOutsetInset の値は、PenAlignment 列挙体のメンバーです。

次のコード例では、線を 2 回描画しています。1 回目では幅 1 の黒のペン、2 回目では幅 10 の緑色のペンを使用しています。

ペンの幅を変更するには

  • Alignment プロパティの値を Center (既定値) に設定して、緑色のペンで描画されるピクセルが、理論上の線を中心にして配置されるように指定します。 次の図は、結果として生成される線を示したものです。

    A black thin line with green highlight.

    次のコード例では、四角形を 2 回描画しています。1 回目では幅 1 の黒のペン、2 回目では幅 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)
    
    

インセット ペンを作成するには

  • 上記のコード例の 3 番目のステートメントを次のように変更して、緑色のペンの基準を変更します。

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

    これで、次の図に示すように、幅の広い緑色の線のピクセルが、四角形の内側に表示されます。

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

関連項目