如何从WPF刷子中获取数组?

3

我希望能够创建一个现有的 WPFBrushes 数组,以便可以循环它们并在下拉框中显示列表。如何做到这一点?

我大概有这样的想法但是它无法工作,因为Brushes不是一个数组。

string[] brushes = Brushes;

foreach (string s in brushes)
{
    comboBox.Items.Add(s);
}
1个回答

13

你可以使用反射(Reflection)和匿名类型(anonymous type)来同时保存名称和画刷(brush)。

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);

@Mir 您的回复对我帮助很大,感谢您分享知识。这是一个“极好”的示例,展示了如何从 typeof(Brushes).GetProperties() 中提取多个值的数组,例如颜色的 Namehexadecimal,比如 Yellow,#FFFFFF00 - nam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接