2014-10-09 55 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