使用MonoTouch绘制网格的最简单方法

时间:2013-03-16 13:36:38

标签: c# xamarin.ios grid

我想画一个这样的网格: enter image description here

我希望能够为每个矩形个体的颜色设置样式。我还希望能够将特定的矩形设置为透明。

在MonoTouch / C#中绘制这样的网格的最简单方法是什么?

1 个答案:

答案 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#进行绘制的代码,你可以在任何其他技术中使用类似的代码。