我允许我的用户在他们的应用中设置背景颜色(即#D900D9),它存储为字符串。 然后,我想设置一个属性,边界'这将取十六进制值' background'黑暗说20%?(即#770077) 我怎样才能做到这一点?
public string backgroundColor { get; set; }
public string borderColor
{
get
{
return backgroundColor + 20%
}
}
答案 0 :(得分:2)
您需要创建一个Color对象
var yourColor = Color.FromHex(backgroundColor);
然后只考虑RGB值:
var c2 = Color.FromArgb(yourColor.A,
(int)(yourColor.R * 0.8), (int)(yourColor .G * 0.8), (int)(yourColor.B * 0.8));
(应该使它变暗;或者,例如,* 1.25使其变亮)
致谢:How do I adjust the brightness of a color?(@Marc Gravell)
答案 1 :(得分:0)
public string backgroundColor { get; set; }
public string borderColor
{
get
{
Color c1 = System.Drawing.ColorTranslator.FromHtml(backgroundColor);
Color c2 = Color.FromArgb(c1.A,(int)(c1.R * 0.8), (int)(c1.G * 0.8), (int)(c1.B * 0.8));
return System.Drawing.ColorTranslator.ToHtml(c2);
}
}