【发布时间】:2012-08-15 09:32:05
【问题描述】:
我需要用Graphics 类(只是交叉线)和一个透明表示像这张图片一样绘制一个网格:
除了绘制每条线/矩形之外,我不知道任何其他方法。如果领域很宽,则性能很差。有没有更好的方法来绘制这些东西?
这是我当前绘制网格的代码:
private void drawGrid(Graphics pGraphic, int pGridSize)
{
int verticalCount = this.mPicScreen.Width / pGridSize + 1;
int horizontalCount = this.mPicScreen.Height / pGridSize + 1;
Pen p = new Pen(Color.Gray);
// Vertical Lines
for (int i = 0; i < verticalCount; i++)
{
pGraphic.DrawLine(p,
new Point(i * pGridSize, 0),
new Point(i * pGridSize, this.mPicScreen.Height));
}
// Horizontal Lines
for (int i = 0; i < horizontalCount; i++)
{
pGraphic.DrawLine(p,
new Point(0, i * pGridSize),
new Point(this.mPicScreen.Width, i * pGridSize));
}
}
【问题讨论】:
-
能否提供已经写好的代码?
-
@Enigmativity 我刚刚添加了它。
-
我试过你的代码,它似乎运行得非常快。我在 1,920 x 1,200 的屏幕上运行。
-
@Enigmativity 对不起,我忘记为控件打开DoubleBuffered,所以它闪烁太多,我认为是性能问题。谢谢你:)