C#控件半透明 Color.FromArgb()方法应用

2019-04-15 16:47发布

常用的颜 {MOD}值表示方式有两种,一种是10进制的RGB值表示,如(0,113,255),三个值分别表示(红,绿,蓝);一种是16进制的颜 {MOD}码表示,如#ff3212。这两种形式在编程中都可以用到。若是在VS设计器中,设置某个控件的前景 {MOD}或背景 {MOD}时,可直接用0,113,255或#ff3212的形式,而在后台代码中,也可以通过Color.FromArgb()方法使用这两种形式来定义颜 {MOD}。 Color.FromArgb()方法的重载及使用
Color.FromArgb()方法共有四种重载形式。
在这里插入图片描述 其中alpha分量值即透明度设置要比较注意。Color.FromArgb (Int32, Int32, Int32)方法是没有设alpha值的,默认为255,即不透明。而在使用Color.FromArgb (Int32)方法时,alpha值是默认为0的,例16进制颜 {MOD}码#dd2378,使用Color.FromArgb (0xdd2378)来定义颜 {MOD},则alpha值是默认为0,该颜 {MOD}是全透明的,所以看不到该颜 {MOD}。要想显示出该颜 {MOD},必须设置alpha值>0,如Color.FromArgb (0x7fdd2378),此时颜 {MOD}为半透明。当然也可以将alpha值设置为全不透,其值为0xffdd2378。不过在使用该值时有些注意事项,因为0xffdd2378是无符号整型uint类型,而Color.FromArgb (Int32)的参数是int型,因此必须使用强制转化Color.FromArgb((int)0xffdd2378),不过即使这样,程序仍会报错,需要使用unchecked重写才能成功(unchecked 关键字用于取消整型算术运算和转换的溢出检查)。 button1.BackColor = Color.FromArgb(0xdd2378); button2.BackColor = Color.FromArgb(0x7fdd2378); unchecked { button3.BackColor = Color.FromArgb((int)0xffdd2378); } 设置panel半透明:
panel1.BackColor = Color.FromArgb(70, Color.Black);