我想制作一个 ComboBox
填充来自 System.Drawing.Color
的所有颜色
但我似乎无法从那个系列中收集所有颜色
我已经尝试过使用 foreach
来完成这样的工作:
foreach (Color clr in Color)
{
}
但我得到的只是一个错误。
那么我怎样才能遍历所有颜色呢?
我们将不胜感激。
最佳答案
您可以从 KnownColor 中获取颜色
KnownColor[] colors = Enum.GetValues(typeof(KnownColor));
foreach(KnownColor knowColor in colors)
{
Color color = Color.FromKnownColor(knowColor);
}
或使用反射来避免像菜单、桌面...这样的颜色包含在 KnowColor 中
Type colorType = typeof(System.Drawing.Color);
// We take only static property to avoid properties like Name, IsSystemColor ...
PropertyInfo[] propInfos = colorType.GetProperties(BindingFlags.Static | BindingFlags.DeclaredOnly | BindingFlags.Public);
foreach (PropertyInfo propInfo in propInfos)
{
Console.WriteLine(propInfo.Name);
}
关于C# 从 Color 获取所有颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3821174/