Feedback

C# - Einfacher Farbverlauf für Steuerelemente (Labels)

Veröffentlicht von am 12.05.2013
(1 Bewertungen)
Dieses Snippet erstellt einen "Farbverlauf" und setzt ihn als BackgroundImage für ein Label.

Das ganze ist eher unsauber (-> nicht gleichmäßig), funktioniert aber flott und reicht locker für kleine Labels etc.

myLabel.GradientBackground(Color.Blue, Color.DarkBlue, true);

erzeugt einen Vertikalen (von Oben nach unten) Farbverlauf. Oben col1, unten col2. Beim horizontalen ist links col1 und rechts col2!
public static class ExtensionMethods
{
    public static void GradientBackground(this Control c, Color col1, Color col2, bool vertical)
    {
        Bitmap b;
        if (vertical)
        {
            b = new Bitmap(1, 2);
            b.SetPixel(0, 0, col1);
            b.SetPixel(0, 1, col2);
        }
        else
        {
            b = new Bitmap(2, 1);
            b.SetPixel(0, 0, col1);
            b.SetPixel(1, 0, col2);
        }
        c.BackgroundImageLayout = ImageLayout.Stretch;
        c.BackgroundImage = b;
    }
}
Abgelegt unter Hintergrund, Farbverlauf, Gradient.

2 Kommentare zum Snippet

Koopakiller schrieb am 12.05.2013:
Hallo, gucke dir mal folgende Klasse an:
http://msdn.microsoft.com/de-de/library/system.drawing.drawing2d.lineargradientbrush.aspx

Die bekommt die Farbverläufe bei großen Flächen auch sauber hin.
dariusarnold schrieb am 12.05.2013:
Aye, aye sir. ;D
Danke für den Hinweis.
 

Logge dich ein, um hier zu kommentieren!