Frage

In C # habe ich eine picturebox. Ich möchte vier Farben zeichnen. Der Standard wird weiß, rot, grün, blau. Wie zeichne ich diese 4 in diesem PicBox stritched Farben? oder sollte ich habe 4 PicBox? in diesem Fall, wie stelle ich die RGB-Farbe?

War es hilfreich?

Lösung

Sie müssen angeben, was Sie speziell ziehen möchten. Sie können keine rote zeichnen - das macht keinen Sinn. Sie können jedoch ein rotes Rechteck an dem Ort ziehen (0,0), die 100 Pixel hoch und 100 breit ist. Ich werde antworten, was ich kann, aber.

Wenn Sie die Kontur einer Form auf eine bestimmte Farbe festlegen möchten, würden Sie eine Pen Objekt. Wenn Sie eine Form mit einer Farbe füllen wollen, aber dann würden Sie ein Brush-Objekt verwenden. Hier ist ein Beispiel dafür, wie man ein Rechteck mit roten gefüllt ziehen würde, und ein Rechteck in grün dargestellt:

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

Andere Tipps

ein PictureBox zum Formular hinzufügen, einen Event-Handler für das Paint-Ereignis erstellen, und es wie folgt aussehen:

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

Dies wird die Oberfläche in vier Rechtecken unterteilt und jeden von ihnen in der Farbe Weiß, Rot malt, Grün und Blau.

Wenn Sie nicht vordefinierten Farben verwenden, dann müssen Sie ein Color-Objekt aus der statischen Methode bekommen Color.FromArgb ().

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

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

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

Mit freundlichen Grüßen
Oliver Hanappi

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top