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