在 C# 中,我有一个图片框。我想画4种颜色。默认值为白色、红色、绿色、蓝色。我如何在这个 picbox 中绘制这 4 种颜色?还是我应该有 4 个 picbox?在那种情况下,我如何设置 rgb 颜色?
user34537
问问题
11381 次
3 回答
8
您需要指定您特别想绘制的内容。你不能画一个红色 - 这没有任何意义。但是,您可以在位置 (0,0) 处绘制一个 100 像素高和 100 像素宽的红色矩形。不过,我会尽我所能回答。
如果要将形状的轮廓设置为特定颜色,则可以创建Pen对象。但是,如果您想用颜色填充形状,则可以使用 Brush 对象。这是一个如何绘制一个用红色填充的矩形和一个用绿色勾勒出的矩形的示例:
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
Brush brush = new SolidBrush(Color.Red);
graphics.FillRectangle(brush, new Rectangle(10, 10, 100, 100));
Pen pen = new Pen(Color.Green);
graphics.DrawRectangle(pen, new Rectangle(5, 5, 100, 100));
}
于 2009-07-11T10:47:21.680 回答
2
在窗体中添加一个 PictureBox,为绘制事件创建一个事件处理程序,并使其看起来像这样:
private void PictureBox_Paint(object sender, PaintEventArgs e)
{
int width = myPictureBox.ClientSize.Width / 2;
int height = myPictureBox.ClientSize.Height / 2;
Rectangle rect = new Rectangle(0, 0, width, height);
e.Graphics.FillRectangle(Brushes.White, rect);
rect = new Rectangle(width, 0, width, height);
e.Graphics.FillRectangle(Brushes.Red, rect);
rect = new Rectangle(0, height, width, height);
e.Graphics.FillRectangle(Brushes.Green, rect);
rect = new Rectangle(width, height, width, height);
e.Graphics.FillRectangle(Brushes.Blue, rect);
}
这会将表面划分为 4 个矩形,并将每个矩形涂成白色、红色、绿色和蓝色。
于 2009-07-11T10:45:34.257 回答
0
如果要使用非预定义颜色,则需要从静态方法 Color.FromArgb() 中获取 Color 对象。
int r = 100;
int g = 200;
int b = 50;
Color c = Color.FromArgb(r, g, b);
Brush brush = new SolidBrush(c);
//...
最好的问候
奥利弗·哈纳皮
于 2009-07-11T10:56:56.107 回答