/// <summary>
/// 根据颜色名称字符串得到颜色值
/// </summary>
/// <param name="ColorNameStr">
/// 颜色名称字符串,可以是标准的或Window系统已定义的颜色字符串名称。
/// 如: White,Black ..., ActiveCaptionColor, ActiveBorderColor 等
/// </param>
/// <returns></returns>
public static Color FromNameColor(string ColorName)
{
ColorName = (ColorName + "").ToUpper();
var Lnq1 = from X in (typeof(Colors)).GetProperties()
let ClrN = X.Name.ToUpper()
let ClrV = (Color)X.GetValue(X, null)
where (ClrN == ColorName)
select ClrV;
var Lnq2 = from X in (typeof(SystemColors)).GetProperties()
let ClrN = X.Name.ToUpper()
let ClrV = (Color)X.GetValue(X, null)
where (ClrN == ColorName)
select ClrV;
var Lnq = Lnq1.Concat(Lnq2);
return Lnq.Count() <= 0 ? Colors.White : (Color)Lnq.First();
}