迭代System.Drawing.Color结构并使用它来创建System.Drawing.Pen

use*_*180 6 c# struct

我想迭代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)

请帮帮我.

Tim*_* S. 7

除了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)11f.在f讲述这是一个编译器float比铸造文字,更简洁1float.