我想迭代System.Drawing.Color结构并使用它来初始化一个笔列表.
我试过这样的,但字段的类型不适合:
colorList = new List<System.Drawing.Pen>();
foreach (var field in typeof(System.Drawing.Color).GetFields())
{
if (field.FieldType.Name == "Color" && field.Name != null)
{
colorList.Add(new System.Drawing.Pen(field, (float)1));
}
}
Run Code Online (Sandbox Code Playgroud)
请帮帮我.
除了Color.Empty,它们是属性,而不是字段:
var colorList = new List<System.Drawing.Pen>();
foreach (var prop in typeof(System.Drawing.Color).GetProperties(BindingFlags.Public | BindingFlags.Static))
{
if (prop.PropertyType == typeof(System.Drawing.Color))
{
colorList.Add(new System.Drawing.Pen((System.Drawing.Color)prop.GetValue(null), 1f));
}
}
Run Code Online (Sandbox Code Playgroud)
这会生成Pen141种颜色的s,我正在运行的版本,应该与Color Properties中的列表相对应.Empty虽然它有,但它不会返回Transparent.另外,我从变(float)1到1f.在f讲述这是一个编译器float比铸造文字,更简洁1到float.