本文共 1344 字,大约阅读时间需要 4 分钟。
原文
该System.Windows.SystemColors类包含了一系列揭露当前预定义系统颜色静态属性。这些物业有三胞胎。对于每个系统颜色Xxx,有XxxBrush,XxxBrushKey和XxxColor属性。
我们可以通过构建一组画笔然后将集合绑定到ListBox,轻松创建一个小的WPF应用程序来显示当前的系统颜色。
这是最终结果:
下面是我用来创建列表的代码。
我从一个包含命名系统颜色及其Brush的实用程序类开始:
public class ColorInfo{ public string Name { get; set; } public Brush Brush { get; set; } public ColorInfo(string name, Brush brush) { Name = name; Brush = brush; }}
接下来,我将一个集合添加到我的主Window类,它将存储一个ColorInfo对象列表:
private ObservableCollectionallSystemColors;public ObservableCollection AllSystemColors{ get { return allSystemColors; }}
在窗口的构造函数中,我使用反射填充此列表。请注意,我遍历SystemColors类中的所有属性,只抓取名称以“Brush”结尾的那些属性。
allSystemColors = new ObservableCollection(); Type scType = typeof(SystemColors);foreach (PropertyInfo pinfo in scType.GetProperties()){ if (pinfo.Name.EndsWith("Brush")) allSystemColors.Add(new ColorInfo(pinfo.Name.Remove(pinfo.Name.Length - 5), (Brush)pinfo.GetValue(null, null)));}
剩下的就是将此集合绑定到ListBox。我们在XAML中这样做:
瞧!
转载地址:http://pggix.baihongyu.com/