Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从WPF笔刷获取数组?_C#_Wpf_Arrays_Foreach_Brush - Fatal编程技术网

C# 如何从WPF笔刷获取数组?

C# 如何从WPF笔刷获取数组?,c#,wpf,arrays,foreach,brush,C#,Wpf,Arrays,Foreach,Brush,我想在WPF中创建一个现有笔刷的数组,这样我就可以循环它们并在组合框中显示列表。我该怎么做 我有类似的东西,但它不会工作,因为画笔不是数组 string[] brushes = Brushes; foreach (string s in brushes) { comboBox.Items.Add(s); } 你可以使用反射。您可以使用匿名类型保存名称和笔刷 var values = typeof (Brushes).GetProperties(). Select(p =>

我想在
WPF
中创建一个现有
笔刷的数组,这样我就可以循环它们并在组合框中显示列表。我该怎么做

我有类似的东西,但它不会工作,因为
画笔
不是数组

string[] brushes = Brushes;

foreach (string s in brushes)
{
    comboBox.Items.Add(s);
}

你可以使用反射。您可以使用匿名类型保存名称和笔刷

var values = typeof (Brushes).GetProperties().
    Select(p => new { Name = p.Name, Brush = p.GetValue(null) as Brush }).
    ToArray();
您只能通过以下方式访问这些名称:

var brushNames = values.Select(v => v.Name);

@米尔:你的回答对我帮助很大。谢谢你分享你的知识。这是一个非常好的
示例,演示了如何从
typeof(画笔).GetProperties()
中提取多个值的数组,例如
Name
hexadecimal
的颜色,如
黄色、#ffffff 00