如何通过反射获取Color结构内所定义的所有颜色??
上网查询到通过以下调用,但不知道如何取出Color值存入我定义的Color数组???
Type t = typeof(Color);
PropertyInfo[] ps = t.GetProperties();
------解决方案--------------------Type t = typeof(Color);
PropertyInfo[] ps = t.GetProperties();
ArrayList arr=new ArrayList();
foreach(color i in ps)
arr.add(i);
------解决方案--------------------有两种方式可以实现。
第一种就是反射,像楼主一样,不过需要给定BindingFlags,指定反射拿到color类的public的静态成员就行了。
推荐使用的二种方式。
系统有个枚举System.Drawing.KnownColor。 它可以列举出windows定义的所有已知名字的color。
Color类有个静态方法FromKnownColor()。 可以根据给定的KnownColor实例构造一个Color实例。
代码类似下面的(没有编译器,我随手写的):
foreach( KnownColor nc in Enum.GetValues(typeof(KnownColor)) )
{
Color color = Color.FromKnownColor(nc);
//// TODO with color
//......
}