Domanda

In C # ho un picturebox. vorrei richiamare 4 colori. Il valore di default sarà bianco, rosso, verde, blu. Come faccio a disegnare questi 4 colori stritched in questo picbox? O dovrei avere 4 picbox? in tal caso, come faccio a impostare il colore RGB?

È stato utile?

Soluzione

È necessario specificare che cosa si sarebbe specificamente desidera richiamare. Non si può disegnare un rosso - che non ha senso. È possibile, tuttavia, disegnare un rettangolo rosso nella posizione (0,0), che è alto 100 pixel e 100 di larghezza. Vi risponderò quello che posso, tuttavia.

Se si desidera impostare il contorno di una forma a un colore specifico, si creerebbe un oggetto Pen . Se si desidera riempire una forma con un colore, però, allora si dovrebbe utilizzare un oggetto Brush. Ecco un esempio di come si potrebbe disegnare un rettangolo pieno di rosso, e un rettangolo delineato nel 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));
}

Altri suggerimenti

Aggiungi un PictureBox al form, creare un gestore di eventi per l'evento di vernice, e farlo sembrare come questo:

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

In questo modo dividere la superficie in 4 rettangoli e dipingere ciascuno di essi nei colori bianco, rosso, verde e blu.

Se si desidera usare i colori non predefiniti, allora avete bisogno di ottenere un oggetto di colore dal metodo statico Color.FromArgb ().

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

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

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

Con i migliori saluti
Oliver Hanappi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top