私はこのようなグリッドを描きたい:
各長方形の色を個別にスタイル設定する機能が必要です。また、特定の長方形を透明に設定できるようにしたいと考えています。
MonoTouch / C# でこのようなグリッドを描画する最も簡単な方法は何ですか?
私はこのようなグリッドを描きたい:
各長方形の色を個別にスタイル設定する機能が必要です。また、特定の長方形を透明に設定できるようにしたいと考えています。
MonoTouch / C# でこのようなグリッドを描画する最も簡単な方法は何ですか?
コードはパネル上のグリッドの描画を表示しますが、キャンバス コントロールとして何でも使用できます。次のコードを確認してください。
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# を使用して描画する場合のコードであり、他のテクノロジでも同様のコードを使用できることに注意してください。