2013-10-11 1 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 응용 프로그램과 잘 작동하지만 지금은 실버 라이트 프로젝트에서 같은 일을 복제하는 것을 시도하고 있지만 using 지시문 또는 어셈블리 참조가 메신저를 말하고있다. 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 (Brushes)) '를 사용할 수 있습니다. 캐스트 ();' – Khan

답변