8 Stimmen

Zeichnen einer Linie mit einem Farbverlauf

Ist es möglich, eine Linie mit einer abgestuften Farbe zu zeichnen?

Ich möchte eine gerade oder gekrümmte Linie zeichnen können (wenn möglich), bei der das eine Ende der Linie blau und das andere Ende rot ist.

Außerdem könnte es notwendig sein, mehr als einen Farbverlauf pro Linie zu haben, z.B. die Farbe von Blau -> Grün -> Rot. Ich denke, dass dies nur aus mehreren Farbverlaufslinien bestehen könnte, die zusammen gezeichnet werden.

13voto

Mitch Wheat Punkte 287474
protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);

    Graphics graphicsObject = e.Graphics;

    using (Brush aGradientBrush = new LinearGradientBrush(new Point(0, 0), new Point(50, 0), Color.Blue, Color.Red))
    {
        using (Pen aGradientPen = new Pen(aGradientBrush))
        {
            graphicsObject.DrawLine(aGradientPen, new Point(0, 10), new Point(100, 10));
        }
    }
}

2 Stimmen

Nein, das muss er in diesem Fall nicht. Die Methode Dispose() wird automatisch nach der Methode OnPaint aufgerufen.

0 Stimmen

Er sollte, auf der Farbe Stift und Pinsel. Noch besser wäre es, sie als Mitglieder am Leben zu erhalten und nicht für jede Farbe neue zu erstellen.

0 Stimmen

Danke, Leute. Ich habe den Schnipsel in aller Eile zusammengesetzt, was meine Schuld ist. Habe es in Ordnung gebracht.

5voto

lubos hasko Punkte 24316

Müssen Sie Folgendes verwenden System.Drawing.Drawing2D.LinearGradientBrush anstelle von System.Drawing.SolidBrush

Beispiel:

e.Graphics.DrawLine(new Pen(new System.Drawing.Drawing2D.LinearGradientBrush(...

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X