2017-10-25 2 views
0

Xamarin.Forms.Colorのすべての色から「R」コンポーネントを取得したいとします。私はこの試みた:Xamarin.Forms.Colorのすべての色からプロパティを取得

var RComponentList = typeof(Color).GetRuntimeFields(). Select((f) => f.GetType().GetRuntimeProperty("R"));

をが、結果はNULL値のリストです。それは色を見つけることができるようですが、それぞれの "R"プロパティではありません。どうすればこれを達成できますか?ありがとうございました。

答えて

0
var fields = typeof(Color).GetRuntimeFields() 
    .Where(x => x.FieldType == typeof(Color) && x.IsInitOnly) 
    .Select(x => ((Color)x.GetValue(null)).R); 
0

彼の答えのためにウィルデッカーに感謝します。達成したいのは、すべての色の名前とそのRGB値を取得することでした。最後に私はこれをしました:

private void PopulateColorsList() 
    { 
     _colors = new Dictionary<string, (double R, double G, double B)>(); 
      foreach (var c in typeof(Color).GetRuntimeFields().Where(f => f.FieldType == typeof(Color) && f.IsInitOnly)) 
      { 
       var color = ((Color)c.GetValue(null)); 
       _colors.Add(c.Name, (color.R, color.G, color.B)); 
      } 
     } 
    } 
関連する問題