Bueno, de tanto buscar encontre una forma y la publico por si le sirve a alguien:
static class Program
{
[STAThread]
static void Main()
{
Form form = new Form();
Color start = Color.Red;//Khaki;
int cant = 5;
Color[] paleta = MakeColorGradient(start, cant);
for (int i = 0; i < cant; i++)
{
Button button = new Button();
button.Dock = DockStyle.Top;
button.BackColor = paleta[i];
//button.BackColor = System.Drawing.ColorTranslator.FromHtml(paleta[i]);
//button.BackColor = ColorConverter.ConvertFromString(paleta[i]) as Color;
button.Text = button.BackColor.ToString();//button.Text = paleta[i].ToString();
form.Controls.Add(button);
button.BringToFront();
}
Application.Run(form);
}
static Color[] MakeColorGradient(Color start, int cant)
{ //System.Drawing.Color //System.Windows.Media.Color
Color[] colores = new Color[cant] ;
Color end = Color.White;//Khaki;
for (int i = 0;i < cant; i++)
{
int r = Interpolate(start.R, end.R, cant, i),
g = Interpolate(start.G, end.G, cant, i),
b = Interpolate(start.B, end.B, cant, i);
colores[i] = System.Drawing.Color.FromArgb(r,g,b);
}
return colores;
}
static int Interpolate(int start, int end, int steps, int index)
{
float s = start, e = end, final = s + (((e - s) / steps) * index);
return (int)final;
}
}