我正在创建一个基于文档的应用程序,我想在文本下面绘制一条水平线。但是,线不应该是直的。我想画一条这样的线。
目前我使用System.Graphics
对象绘制任何对象。
private void DrawLine(Graphics g, Point Location, int iWidth)
{
iWidth = Convert.ToInt16(iWidth / 2);
iWidth = iWidth * 2;
Point[] pArray = new Point[Convert.ToInt16(iWidth / 2)];
int iNag = 2;
for (int i = 0; i < iWidth; i+=2)
{
pArray[(i / 2)] = new Point(Location.X + i , Location.Y + iNag);
if (iNag == 0)
iNag = 2;
else
iNag = 0;
}
g.DrawLines(Pens.Black, pArray);
}
已更新:
上面的代码工作正常,线条绘制完美但是,此代码会影响应用程序性能。还有另一种方法可以做这件事。
答案 0 :(得分:1)
如果你想要快速绘图,只需要制作一个所需行的png图像,宽度大于你需要的宽度,然后绘制图像:
private void DrawLine(Graphics g, Point Location, int iWidth)
{
Rectangle srcRect = new Rectangle(0, 0, iWidth, zigzagLine.Height);
Rectangle dstRect = new Rectangle(Location.X, Location.Y, iWidth, zigzagLine.Height);
g.DrawImage(zigzagLine, dstRect, srcRect, GraphicsUnit.Pixel);
}
zigzagLine是位图。
瓦尔特