如何从C#compact框架中的颜色名称中获取颜色?

时间:2012-02-23 07:29:36

标签: c# compact-framework

我希望有一个所有颜色的列表,当我选择一种颜色时,我需要从它的名字中获取颜色。

我使用这种方法获得颜色列表...

    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 (var colorInfo in propInfos)
            {
// making a list here
}

但我不知道如何从它的名称中获取颜色,因为紧凑框架中没有Color.FromName()方法。

1 个答案:

答案 0 :(得分:0)

我不确切知道紧凑框架支持什么,但在“完整”C#中,PropertyInfo的每个实例都有一个属性“Name”和一个方法“GetValue”,您可以使用它来查找仅给出名称的颜色

类似的东西(如果允许LINQ)

Color color = (Color)propInfos.Single(pi => pi.Name == colorName).GetValue(null);

(请注意,如果找不到colorName,.Single会抛出异常。)