我想制作一个方格纸网格并将图纸设置为图片框的图像。现在我甚至可能使用错误的东西绘制方格纸网格,但我已经问过,有些人说DrawGrid
方法可行。以下代码均未返回任何错误,但当我运行button1_Click
方法时,它不会向picturebox
显示任何内容。
private void button1_Click(object sender, EventArgs e)
{
button2.Visible = true;
Bitmap bmp = new Bitmap(pictureBox1.ClientSize.Width, pictureBox1.ClientSize.Height);
Size yourGridspacing = new Size((int)numericUpDown1.Value, (int)numericUpDown2.Value);
using (Graphics G = Graphics.FromImage(bmp))
{
ControlPaint.DrawGrid(G, new Rectangle(Point.Empty, bmp.Size), yourGridspacing , Color.Black);
}
pictureBox1.Image = bmp;
}
知道问题可能是什么?
答案 0 :(得分:0)
您的PictureBox
可能有White
背景..如果有,请告诉ControlPaint.DrawGrid
方法,以便......:
ControlPaint.DrawGrid(G, new Rectangle(Point.Empty, bmp.Size),
yourGridspacing , Color.White);
param 不控制点的颜色;它应该有助于找到对比的颜色。所以编写它的最佳方式可能是:
ControlPaint.DrawGrid(G, new Rectangle(Point.Empty, bmp.Size),
yourGridspacing, pictureBox1.BackColor);
这适用于除Color.Transparent
之外的所有颜色..(在这种情况下,下面控件的颜色将决定点是否可见..)
你可能想知道为什么选择这种迂回的方式?好吧,方法DrawGrid
并不像普通的绘图方法那样,就像Graphics
中的方法一样。它是构建强大的Windows控件显示方法之一,如Button
或CheckBox
..现在,绘制网格的背景需要不 只有一个颜色;它可能是一个图像或一个渐变,它可能会改变..
你应该选择一种典型的颜色来代表那个背景。然后系统将选择具有良好对比度的颜色的点。
有关控制网格颜色的方法,请参阅my other answer中的最后一个选项!