原文 Creating a ListBox that Shows All Predefined System Colors

该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 ObservableCollection<ColorInfo> allSystemColors;
public ObservableCollection<ColorInfo> AllSystemColors
{
get { return allSystemColors; }
}

在窗口的构造函数中,我使用反射填充此列表。请注意,我遍历SystemColors类中的所有属性,只抓取名称以“Brush”结尾的那些属性。

allSystemColors = new ObservableCollection<ColorInfo>();

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 - ),
(Brush)pinfo.GetValue(null, null)));
}

剩下的就是将此集合绑定到ListBox。我们在XAML中这样做:

<ListBox ItemsSource="{Binding ElementName=mainWindow, Path=AllSystemColors}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<Rectangle Fill="{Binding Path=Brush}" Stroke="Black" Margin="5" StrokeThickness="1" Height="74" Width="120"/>
<TextBlock Text="{Binding Path=Name}" HorizontalAlignment="Center"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

瞧!

创建一个显示所有预定义系统颜色的ListBox的更多相关文章

  1. 创建一个显示所有预定义WPF颜色的ListBox

    原文 Creating a ListBox that Shows All Predefined WPF Colors 在WPF中,您可以使用Colors类访问一系列预定义颜色,这些颜色定义为Color ...

  2. Colours–颜色库,包含100种预定义的颜色和方法

    简介 Colours–颜色库,包含各种100种预定义的颜色和方法,可以简化颜色相关的开发工作. 项目主页: Colours 最新示例: 点击下载 快速入门 安装 通过Cocoapods安装 pod ' ...

  3. 五十九、SAP中常用预定义系统变量

    一.SAP中常用预定义系统变量 内容如下: 二.系统变量定义在结构SYST里,我们打开SE38 三.在代码编辑器输入SYST变量 四.双击SYST,来到这个系统结构,里面有很多系统变量 五.我们随便写 ...

  4. 利用BitLocker和vhdx创建一个有加密的Win10系统

    如果电脑不支持TPM加密BitLocker,就无法对系统盘进行全盘加密. 可以采用一个变通的方法:创建一个vhdx,将这个虚拟磁盘进行BitLocker加密,然后在这个盘里安装操作系统,最后把vhdx ...

  5. 【Unity Shaders】Reflecting Your World —— 在Unity3D中创建一个简单的动态Cubemap系统

    本系列主要参考<Unity Shaders and Effects Cookbook>一书(感谢原书作者),同时会加上一点个人理解或拓展. 这里是本书所有的插图.这里是本书所需的代码和资源 ...

  6. Shell 变量详解教程之位置变量与预定义变量。

    Shell 变量分为3部分,分别是用户自定义变量.位置变量和预定义变量. 一.   自定义变量 那么,什么是变量呢?简单的说,就是让某一个特定字符串代表不固定的内容,用户定义的变量是最普通的Shell ...

  7. Shell 变量详解教程之位置变量与预定义变量

    Shell 变量分为3部分,分别是用户自定义变量.位置变量和预定义变量. 一.   自定义变量 那么,什么是变量呢?简单的说,就是让某一个特定字符串代表不固定的内容,用户定义的变量是最普通的Shell ...

  8. 科学计算三维可视化---TVTK入门(创建和显示三维对象)

    一:创建一个基本的三维对象 (一)长方体操作 traits:就是TVTK对象的属性 (1)对象属性操作 >>> from tvtk.api import tvtk >>& ...

  9. [Winform][C#]获取系统颜色预定义颜色和现有字体集

    转自: http://zhidao.baidu.com/link?url=ozY7tJRNBYHUsImE6jn1psqc8owib7MWcDMEmZw48q8iD9Hz9MWgnQQcBDO0VYO ...

随机推荐

  1. stm32四种输入

    1.          上拉输入(GPIO_Mode_IPU)   上拉输入就是信号进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0.1信号,读取此时的引脚电平为高电平:   2.       ...

  2. javascript运算符应用

    下面的代码会输出什么?为什么? console.log(1 + "2" + "2"); console.log(1 + +"2" + &qu ...

  3. GB2312/ANSI编码转中文字符

    struct GB2312{    unsigned short gb2312code;    CString     ChineseCode;}GB2312ToChinese[] = {{0xA1A ...

  4. hdu 4811 数学 不难

    http://acm.hdu.edu.cn/showproblem.php? pid=4811 由于看到ball[0]>=2 && ball[1]>=2 && ...

  5. Codeforces 467C. George and Job

    DP.... C. George and Job time limit per test 1 second memory limit per test 256 megabytes input stan ...

  6. Swift 语言概览 -自己在Xcode6 动手写2-tableView

    import UIKit class ViewController: UIViewController ,UITableViewDelegate, UITableViewDataSource { va ...

  7. 【35.00%】【z13】&&【b093】最优贸易

    [题解] 这题就是要在n个点里面选一个花费最小的点.然后找一个花费最大的点.两者之差为最大值. 但是最大值的点要在最小值的点之后出现.且走到后者之后要能够到达N号节点.为了处理掉环.先用tarjan进 ...

  8. 解决Eclipse 启动后总是Building WorkSpace(sleeping)

    打开eclipse后eclipse总是在Building WorkSpace(sleeping),我的解决方案是,Project -> Building AutoMatically关闭就好了,以 ...

  9. [Node.js] Test Node RESTful API with Mocha and Chai

    In this lesson, we will use Chai's request method to test our Node application's API responses.By th ...

  10. php实现 提取不重复的整数(编程题目能够最快的熟悉函数)

    php实现 提取不重复的整数(编程题目能够最快的熟悉函数) 一.总结 一句话总结:编程题目能够最快的熟悉函数. 1.字符串反转函数? 没有str_revserse,有arr_reverse,这里是st ...