C# 从 Color 获取所有颜色

标签 c# arrays collections loops colors

我想制作一个 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/

相关文章:

c# - 在存储过程中添加一条到多条记录

c# - 使用 WPF 按钮复制和粘贴命令

arrays - 如何在rethinkdb中过滤数组大小?

java - 将字符串数组中的每个元素拆分为多个数组

c# - System.Collections.Generic.Dictionary<T,T>.Equals 实际上做了什么?

类型参数的 C# 方差注释,限制为值类型

javascript - 搜索输入字段以搜索 JavaScript 数组 - 如何验证空输入框

带有集合对象的 WPF 数据绑定(bind)

java - foreach 循环中的 ConcurrentModificationException

c# - 重定向到新网站以及查询字符串参数。仅 DNS 名称更改