在我当前的工具中,有一个带有一些数字的彩色框。框的背景色由某种列表定义,但也可以由用户更改。前景色(==数字的字体颜色)不能,我想确保用户总是可以阅读数字,所以我想在背景色发生变化时调整数字的前景色。
Atm 我使用这样的代码:
if(Math.Abs(foreColor.GetBrightness() - backColor.GetBrightness()) <= 0.5f)
{
if(foreColor.GetBrightness() > 0.5f)
{
foreColor = Color.Black;
}
else
{
foreColor = Color.White;
}
}
但这只是该问题的一种解决方法,有很多颜色(主要是黄色)导致阅读显示不好。有人遇到过类似的问题并找到了好的解决方案吗?