C#中怎样获取System.Drawing.Color的所有颜色对象并存到数组中
<h1>场景</h1><p>必要在生成一组多条曲线时,随机从一颜色数组中取颜色,至少一百种颜色以上。</p>
<p>而System.Drawing.Color自带140多种颜色</p>
<p></p>
<p> </p>
<p> </p>
<p>那么怎样将其自带的颜色对象取出并存在数组中。</p>
<p>博客主页: <br /><a href="https://blog.csdn.net/badao_liumang_qizhi">https://blog.csdn.net/badao_liumang_qizhi</a>
<h1>实现</h1>
//用于存取取出的颜色对象
List<Color> colorList = new List<Color>();
//通过GetMember获取全部的公共成员
foreach (var item in typeof(Color).GetMembers())
{
//只取属性且为属性中的已知Color,剔除byte属性以及一些布尔属性等(A B G R IsKnownColor Name等)
if (item.MemberType == System.Reflection.MemberTypes.Property && System.Drawing.Color.FromName
(item.Name).IsKnownColor == true)
{
Color color = System.Drawing.Color.FromName(item.Name);
colorList.Add(color);
}
}
//转成数组
Color[] colors = colorList.ToArray();
<p>可以检察此时获取的颜色对象的数组为:</p>
<p></p>
<p> </p>
<p> </p>
<p> </p>
<p><img/></p>
页:
[1]