2014-10-09 26 views
0

我在VB.Net中的WPF上有一些形状。我添加了一个处理程序,所以我可以使用我的控件删除或编辑形状。为此,我添加了一个组合框,我想要显示所有Windows.Media.Brushes,以便我可以选择一个并将颜色添加到形状。VB.NET:输出所有Windows.Media.Brushes

我的问题: - 如何将Windows.Media.Brushes的所有名称添加到组合框? - 如何将名称后来转换回笔刷?

最好的问候, 斯坦

回答

0

要获得所有刷的名单只是他们的类型的过滤器Brushes属性

var brushes = typeof(Brushes).GetProperties() 
          .Where (pi => pi.PropertyType == typeof(SolidColorBrush)) 
          .Select (pi => pi.Name) 
          .ToList(); 

把一个名字回你可以再次使用反射刷:

var brush = typeof(Brushes).GetProperty("Blue") 
          .GetValue(null) 
       as SolidColorBrush; 
+0

将字符串转换为SolidColorBrush的另一种方法是使用'BrushConverter'(使用'ConvertFrom'或'ConvertFromString'方法)。这是设计师如何解析颜色名称以在XAML中刷新的方式。 – 2014-10-09 21:39:38

+0

干杯斯坦利我可以采用你的代码到VB.NET来获取整个collers列表。感谢国王我正在使用您的代码来稍后转换颜色。所采用的代码如下所示:对于GetType中的每个笔刷(笔刷).GetProperties() comboBrushes.Items.Add(brush.Name) Next – stan 2014-10-11 12:53:44