个人资料

跳过导航链接首页 > 博客列表 > 博客正文

C#通过Reflection获取Colors对象所有静态属性颜色

分类:

Colors包含很多静态属性颜色,应该是以前Form里面的KnownColor。现在做一个取色框大概就是下面这样。

通过反射方式获取Colors的所有静态属性。

        public ObservableCollection<UserColor> CreateColorCollection() {

            var colorCollection = new ObservableCollection<UserColor>();

            var colorProperties = typeof(Colors).GetProperties();

            foreach (PropertyInfo p in colorProperties)
            {

                if (p.PropertyType== typeof(Color))
                {
                    var c = new UserColor();
                    c.Name = p.Name;
                    c.Value = (Color)p.GetValue(null);
                    c.Brush = new SolidColorBrush(c.Value);
                    colorCollection.Add(c);
                    //Debug.WriteLine($"ColorName:{p.Name}Color2String{color.ToString()}");
                }
            }

            return colorCollection;
        }
   public class UserColor {

        public string Name { get; set; }

        public Color Value { get; set; }

        public SolidColorBrush Brush { get; set; }
    }

end

songshizhao
最初发表2021/11/1 15:55:12 最近更新2021/11/1 16:10:04 887
为此篇作品打分
10
   评论