2013-10-11 45 views
2

我有一个以前的项目我有过在WPF应用程序中所有可用的颜色循环工作的一类,这是如下图所示;遍历Silverlight的画笔来获得所有可能的颜色

public class ListOfColors 
    { 
     public List<ComboBoxItem> SelectableColours; 
     private PropertyInfo[] _propInfo; 
     public List<ComboBoxItem> GetListOfColours() 
     { 
      List<ComboBoxItem> SelectableColours = new List<ComboBoxItem>(); 
      Type brushesType = typeof(Brushes); 

      PropertyInfo[] colors = brushesType.GetProperties(); 
      _propInfo = colors; 


      foreach (var color in colors) 
      { 
       ComboBoxItem colour = new ComboBoxItem(); 
       colour.Content = color.Name; 
       SelectableColours.Add(colour); 
      } 

      return SelectableColours; 
     } 
    } 

这正常工作与我的WPF应用程序,但现在我试图复制在Silverlight项目同样的事情,但它说我在想念一个使用指令或程序集引用。我试图添加System.Windows.Media参考,但它仍然说,我错过了它。

有没有一个步骤我失踪或我必须得到一个不同类型返回,我试图使用Colors作为一种类型,但这会带回有限数量的颜色,总共15;

Type brushesType = typeof(Colors); 
+0

在Silverlight中没有'Brushes'类。 –

+4

http://lotsacode.wordpress.com/2010/02/27/translating-c-brushes-to-silverlight-brushes/ – Khan

+1

至于WPF你不需要使用反射。你可以用'VAR allBrushes = Enum.GetValues(typeof运算(刷))演员();' – Khan

回答