如何:用箭头画一条线?

时间:2010-08-02 21:02:26

标签: .net gdi+

我有以下代码,用一条(非常)小箭头画一条线......

    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        Pen p = new Pen(Color.Black);
        p.EndCap = System.Drawing.Drawing2D.LineCap.ArrowAnchor;

        e.Graphics.DrawLine(p, 10, 10, 100, 100);
        p.Dispose();
    }

我想画一个箭头(圆形,方形,三角形等...),保持相同的线宽

有可能吗?

1 个答案:

答案 0 :(得分:14)

您希望将CustomLineCapGraphicsPath一起使用。这是一个例子:

using(Pen p = new Pen(Color.Black))
using(GraphicsPath capPath = new GraphicsPath())
{
    // A triangle
    capPath.AddLine(-20, 0, 20, 0);
    capPath.AddLine(-20, 0, 0, 20);
    capPath.AddLine(0, 20, 20, 0);

    p.CustomEndCap = new System.Drawing.Drawing2D.CustomLineCap(null, capPath);

    e.Graphics.DrawLine(p, 0, 50, 100, 50);
}

你想用一条从上到下和从(0,0)开始的线来“设计”你的帽子,以获得正确的坐标。

编辑:我只想提一下,您也可以使用AdjustableArrowCap绘制特定尺寸的箭头并填充它,但因为您提到了其他形状的要求,我'我使用了CustomLineCap。