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;
}
}
2 Kommentare zum Snippet