如何根据背景更改标签前体色彩

时间:2016-11-30 06:25:16

标签: c# asp.net .net winforms window

即。如果背景为白色,则标签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;
   }

2 个答案:

答案 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