即。如果背景为白色,则标签textcolour应为白色,反之亦然
即时使用以下代码bgDelta始终为0且颜色会有所不同,但如果是白色背景,则标签颜色也是白色。
public Color IdealTextColor(Color bg)
{
int nThreshold = 105;
int bgDelta = Convert.ToInt32((bg.R * 0.299) + (bg.G * 0.587) + (bg.B * 0.114));
Color fColor = (105 - bgDelta < nThreshold) ? Color.Black : Color.White;
return fColor;
}
答案 0 :(得分:0)
当我调试时,我把它弄黑了;
IdealTextColor(Color.White);
...
public Color IdealTextColor(Color bg){
int nThreshold = 105;
int bgDelta = Convert.ToInt32((bg.R * 0.299) + (bg.G * 0.587) + (bg.B * 0.114));
Color fColor = (105 - bgDelta < nThreshold) ? Color.Black : Color.White;
return fColor;}
代码;
double fcolor = 1 - ( 0.299 * color.R + 0.587 * color.G + 0.114 * color.B)/255;
更好的方法;
{{1}}
答案 1 :(得分:0)
lable.ForeColor = form.BackColor