我有以下代码,用一条(非常)小箭头画一条线......
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();
}
我想画一个大箭头(圆形,方形,三角形等...),保持相同的线宽。
有可能吗?
答案 0 :(得分:14)
您希望将CustomLineCap
与GraphicsPath
一起使用。这是一个例子:
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。