我想画一个这样的网格:
我希望能够为每个矩形个体的颜色设置样式。我还希望能够将特定的矩形设置为透明。
在MonoTouch / C#中绘制这样的网格的最简单方法是什么?
答案 0 :(得分:1)
代码显示面板上的网格图,但您可以使用任何内容作为画布控件。请检查以下代码:
int numHorisontal = 20;
int numVertical;
int squareDim = 10;
int xOffset = 30;
int yOffset = 30;
void panel_Paint(object sender, PaintEventArgs e)
{
for (int i = 0; i <= numVertical; i++)
{
e.Graphics.DrawLine(Pens.Black, new Point(xOffset, yOffset + i * squareDim), new Point(xOffset + 20 * squareDim, yOffset + i * squareDim));
}
for (int i = 0; i < numHorisontal; i++)
{
e.Graphics.DrawLine(Pens.Black, new Point(xOffset + i * squareDim, yOffset), new Point(xOffset + i * squareDim, yOffset + 20 * squareDim));
}
}
numHorisontal
是网格中水平方格的数量,numVertical
是垂直方格。 squareDim
是一个方形边的大小。如果要在索引i和j上设置方形的颜色,则可以使用以下方法。如果要将某些正方形设置为透明,则画布也应该是透明的(将画布的背景颜色设置为透明)。
private void SetColor(int i, int j, Color color, Graphics g)
{
g.FillRectangle(new SolidBrush(color), new Rectangle(i * squareDim, j + squareDim, squareDim, squareDim));
}
注意这就是你想在WinForms中使用C#进行绘制的代码,你可以在任何其他技术中使用类似的代码。