Inhalt
Klassenlexikon

Klasse LinearGradientBrush

Namensraum Vererbungshierarchie Schnittstellen
System.Drawing.Drawing2D
Object
  MarshalByRefObject
    Brush    »
      LinearGradientBrush
ICloneable
IDisposable    »
Kurzbeschreibung

Eine Instanz von LinearGradientBrush ist ein Pinsel, der eine geschlossene Figur mit einem Farbverlauf ausgemalt (füllt). Die Art des Farbverlaufs kannst du einstellen.

Hinweise
  • Die Klasse ist versiegelt; du kannst von LinearGradientBrush deshalb keine Klassen ableiten.
  • Da die Klasse die Schnittstelle IDisposable implementiert, sollten Instanzen mit der using-Anweisung hergestellt und verwendet werden.

Codebeispiele

Hier füllen wir ein Rechteck mit einem Farbverlauf, der von grün nach rot wechselt. Die Farbverlaufsrichtung wird als Winkel angegeben, der ab der X-Achse im Uhrzeigersinn gemessen wird.

private void FillPaintArea(Graphics g, Rectangle rechteck)
{
    using (LinearGradientBrush pinsel =
              new LinearGradientBrush(
                   rechteck,
                   Color.Green,   // Farbe im Anfangspunkt
                   Color.Red,     // Farbe im Endpunkt
                   45.0f)         // Verlaufsrichtung
          )
    {
        g.FillRectangle(pinsel, rechteck);
    }
}

Farbverlauf von grün nach rot

Um einen Farbverlauf mit mehreren Farben zu zeichnen, mußt du die Aufeinanderfolge der Farben ausdrücklich festlegen. Dazu verwendest du die Klasse ColorBlend. Eine Instanz von ColorBlend enthält zwei Felder gleicher Größe, in denen aufeinanderfolgende Farben in einem Bereich von 0.0 bis 1.0 positioniert werden. Diese Positionierung wird dann auf die tatsächliche Größe des Farbverlaufs übertragen.

Rectangle bereich =
      Rectangle.Inflate(rechteck, -10, -10);

ColorBlend mischung = new ColorBlend(5);
Color [] farbwerte =
         {  Color.Red, 
            Color.Yellow,
            Color.Green,
            Color.Blue,
            Color.Violet
         };
float [] farbpositionen = { 0.0f, 0.25f, 0.5f, 0.75f, 1.0f };

mischung.Colors = farbwerte;
mischung.Positions = farbpositionen;

using (LinearGradientBrush pinsel =
             new LinearGradientBrush
                   (bereich,
                    Color.Black,   //  bedeutungslos
                    Color.Black,   //  bedeutungslos
                    0.0f)
      )
{
    pinsel.InterpolationColors = mischung;
    g.FillRectangle(pinsel, bereich);
}

Linearer Gradient: Regenbogenfarben


Inhalt
Klassenlexikon