Pergunta

Em C # eu tenho um picturebox. i gostaria de chamar a 4 cores. O padrão será branco, vermelho, verde, azul. Como faço para desenhar estes 4 cores stritched neste picbox? ou eu deveria ter 4 picbox? nesse caso, como faço para definir a cor do rgb?

Foi útil?

Solução

Você precisa especificar o que é que você gostaria especificamente para desenhar. Você não pode desenhar um vermelho - que não faz sentido. Você pode, no entanto, desenhar um retângulo vermelho na posição (0,0), que é de 100 pixels de altura e 100 de largura. Eu vou responder o que posso, no entanto.

Se você deseja definir o contorno de uma forma para uma cor específica, você criaria um Pen objeto. Se você quiser preencher uma forma com uma cor, no entanto, em seguida, você usaria um objeto Brush. Aqui está um exemplo de como você gostaria de chamar um retângulo preenchido com vermelho, e um retângulo esboçado no verde:

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));
}

Outras dicas

Adicionar um PictureBox ao formulário, criar um manipulador de eventos para o evento de pintura, e torná-lo parecido com este:

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);
}

Isto irá dividir a superfície em 4 retângulos e pintar cada um deles nas cores branco, vermelho, verde e azul.

Se você quiser usar cores não predefinidos, então você precisa para obter um objeto de cor no método estático Color.FromArgb ().

int r = 100;
int g = 200;
int b = 50;

Color c = Color.FromArgb(r, g, b);

Brush brush = new SolidBrush(c);
//...

Atenciosamente
Oliver Hanappi

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top