GradientLabel

For a project that I’m working on, I wanted to display a dialog that had different header text. I found a really cool way to make this header stand out.

Introducing the GradientLabel…

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

public class GradientLabel : Label
{
  public class Colors
  {
    public readonly Color Start;
    public readonly Color Finish;

    public Colors(Color start, Color finish)
    {
	    this.Start = start;
	    this.Finish = finish;
    }
  }

  private readonly Colors colors;

  public GradientLabel()
  {
    this.colors = new Colors(SystemColors.Control, SystemColors.Window);
  }

  public GradientLabel(Colors colors)
  {
    this.colors = colors;
  }

  protected override void OnPaintBackground(PaintEventArgs pevent)
  {
    Rectangle paintRect = new Rectangle(0, 0, Width, Height);

    using (Brush b = new LinearGradientBrush(paintRect,
	    colors.Start, colors.Finish, LinearGradientMode.Horizontal))
    {
	    pevent.Graphics.FillRectangle(b, paintRect);
    }
  }
}