让我们说我想获得" R"来自Xamarin.Forms.Color中所有Colors的组件。我试过这个:
var RComponentList = typeof(Color).GetRuntimeFields().
Select((f) => f.GetType().GetRuntimeProperty("R"));
但结果是一个空列表。就像它设法找到颜色而不是" R"他们每个人的财产。我怎样才能做到这一点?谢谢。
答案 0 :(得分:0)
var fields = typeof(Color).GetRuntimeFields()
.Where(x => x.FieldType == typeof(Color) && x.IsInitOnly)
.Select(x => ((Color)x.GetValue(null)).R);
答案 1 :(得分:0)
感谢Will Decker的回答。我想要实现的是获取所有颜色的名称及其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));
}
}
}