C# 透明窗体,上面的label文字毛边怎么去掉,透明窗体字体有毛边的问题 处理办法,设置相近色

是否还有更好的窗体透明的方法,可以解决字体毛边的问题。
我现在窗体透明的方法是:但是这样就会有

 this.BackColor = Color.White;

            this.TransparencyKey = Color.White;

 

看到有白边怎么办?

处理相近色

  string 字体颜色16进制 ="FF0000";


   Color 透明色= HexToColor相近(字体颜色16进制);
 this.BackColor = 透明色;

  this.TransparencyKey = 透明色;
//文字颜色
 label1.ForeColor = HexToColor(字体颜色16进制);

 

//16进制转化
 /// <summary>
        /// hex转换到color
        /// </summary>
        /// <param name="hex"></param>
        /// <returns></returns>
        public   Color HexToColor(string hex)
        {
            byte br = byte.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
            byte bg = byte.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
            byte bb = byte.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
           
             
            Color c = Color.FromArgb(50, br, bg, bb);
            return c;
        }

     public Color HexToColor相近(string hex)
        {
            int br = int.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
            int bg = int.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
            int bb = int.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
          
           
            if (br > 20)
            {

                br = br - 5;
            }

                if (bg > 20)
                {
                bg = bg - 5;
                }
                if (bb > 20)
                {
                bb = bb - 5;
                }

           // MessageBox.Show(br.ToString());
                Color c = Color.FromArgb( br, bg, bb);
            return c;
        }

看效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值