Por lo que haría:
string[] colors = Enum.GetNames(typeof(System.Drawing.KnownColor));
... para obtener una matriz de todos los collors.
O ... Podría usar el reflejo para obtener los colores. KnownColors incluye elementos como "Menú", el color de los menús del sistema, etc. Esto podría no ser lo que deseaba. Por lo tanto, para obtener sólo los nombres de los colores en System.Drawing.Color, se podría utilizar la reflexión:
Type colorType = typeof(System.Drawing.Color);
PropertyInfo[] propInfoList = colorType.GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public);
foreach (System.Reflection.PropertyInfo c in propInfoList) {
Console.WriteLine(c.Name);
}
Esto escribe a cabo todos los colores, pero fácilmente se podría adaptar para añadir los nombres de los colores a una lista .
Consulte este proyecto de proyecto de código en building a color chart.