C# 如何设置label(标签)控件的背景颜色为透明

有时候,我们需要将控件的背景颜色设定为透明,比如说label(标签)控件。那么,如何将控件的背景颜色设定为透明?是不是只要将控件的BackColor属性设为Transparent(透明)就可以了呢?答案是否定的。看似很简单,其实不然,在实际操作过程中,很让人抓狂,抓狂到让你怀疑人生。

关于透明

首先要解释一下,什么叫做透明。在C#这里,透明就是指透过控件的背景,可以看到其父控件(容器)表面的颜色。所谓的透明,其实就是将父控件表面的颜色设定为自己的背景颜色。

设置控件背景颜色为透明的步骤和注意事项:

以pictureBox上的label控件为例,设置label的背景为透明,可以看到pictureBoxs上的图片。 
(1)首先,将label控件的背景颜色设为透明(Transparent)。在属性窗口中设置,或者在代码中设置:label1.BackColor=Color.Transparent; 
(2)其次,将label控件的Parent属性设定为picturebox,也就是说,将pictureBox设为label的父控件。在代码中写上:label1.Parent=pictureBox1;或者pictureBox1.Controls.Add(label1); 
(3)最后,调整控件的位置。将label控件的位置(Location)重新设定一下,使其显示在pictureBox中合适的位置:这一步是非常重要的!这常常是出问题的地方,如果Location属性没设置好,有可能看不到标签。

注意事项: 

(1)为什么将label控件的背景设为透明,透过背景看到的不是pictureBox的颜色,而是窗体的颜色? 
其原因是:label控件的父控件默认是窗体,当将label的背景颜色设为透明之后,看到的将会是窗体的颜色,即使你已经把label控件拖到pictureBox控件上面也无济于事。解决方法是,重新设置label的Parent属性,使label控件的父控件为pictureBox。

(2)为什么将label的Parent属性设置为pictureBox之后,运行时发现label控件不见了,或者显示的位置不在拖放的位置? 
原因是:

label等控件默认的父控件是窗体,一开始的时候,location属性也是相对于窗体的。当运行时,label父控件改为了PictureBox,那么location属性也将是改为相对于PictureBox。这里是重点,这是为什么标签不见的原因:加了label1.parent=pictureBox1这段代码之后,label的位置基准就变为PictureBox的了,但location的数值没有变,当location的数值比PictureBox的size还大的时候,label不会显示。因此,在设置完label1.parent=PictureBox1之后,还要设置location属性,比如label1.location=new point(0,0)。这时label显示在PictureBox的左上角。这是关于位置基准的问题,控件以谁为父亲,它的位置基准就一父控件的左上角为基准。在切换父控件的时候,要注意把位置也得调一下。同样是location=(100,100),以不同的控件作为父控件,显示的位置是不一样的。也就是说,显示位置不但跟数值有关,还跟选择的基准有关。

例子

在窗体上放一个pictureBox控件,并在其Image属性中放入一张图片,然后在pictureBox上拖放一个label控件。显示效果:pictureBox上显示图片,上面的label控件的背景是透明的,透过label控件可以看到pictureBox上的图片。 
(1)仅仅将label的背景设为透明

private void Form1_Load(object sender, EventArgs e)
{
   label1.BackColor = Color.Transparent;
}

运行效果:

可以看到,label的背景是窗体的颜色。

(2)不仅设置背景透明,还将label的Parent属性改为pictureBox。

private void Form1_Load(object sender, EventArgs e)
{
      label1.BackColor = Color.Transparent;
      label1.Parent = pictureBox1;
      //pictureBox1.Controls.Add(label1);
}

运行效果 :

发现,label控件不见了。

(3)不仅设置背景透明,将label的Parent属性改为pictureBox,还把Location属性重新设置为合适的值。

private void Form1_Load(object sender, EventArgs e)
{
      label1.BackColor = Color.Transparent;
      label1.Parent = pictureBox1;//将pictureBox1设为标签的父控件
      //pictureBox1.Controls.Add(label1);
      label1.Location = new Point(80, 80);//重新设定标签的位置,这个位置时相对于父控件的左上角
}

运行效果:

背景终于透明了!

以上就是C# 如何设置label(标签)控件的背景颜色为透明的详细内容,更多关于c# label控件透明的资料请关注我们其它相关文章!

(0)

相关推荐

  • C#利用Label标签控件模拟窗体标题的移动及窗体颜色不断变换效果

    前言 标签(Label)控件是最常用的控件,在任何Windows应用程序中都可以中都可以看到标签控件.标签控件用于显示用户不能编辑的文件或图像,常用于对窗体上各种控件进行标注或说明. 在窗体中添加标签控件时,会创建一个Label类的实例.Label控件派生自Control控件,和其他控件一样支持事件,但通常不需要添加任何事件代码. 本文主要给大家介绍了关于C#用Label标签控件模拟窗体标题移动及窗体颜色不断变换的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 开发工

  • C#中label内容显示不全、不完整的解决方法

    c# label的内容显示不全,需要设置如下属性即可: 1.将Lable的font属性的字体改成宋体: 2.将AutoSize属性改成true:

  • C# 填充Excel图表、图例背景色的实例代码

    填充背景色,一般可以选择多种不同样式来填充背景,包括填充为纯色背景.渐变背景.图片背景或者纹理背景等.下面的内容将分别介绍通过C#来设置Excel中图表背景色.以及图表中的图例背景色的方法. 使用工具:Spire.XLS for .NET dll引用:下载安装后,注意在程序中添加引用Spire.Xls.dll(dll文件在安装路径下的bin文件夹中获取) [示例1]填充图表背景色 测试文档如下: Step1:加载文档 //实例化Workbook类的对象 Workbook workbook = n

  • 效控制C#中label输出文字的长度,自动换行

    <table>    <tr>       <td style="PADDING-RIGHT: 6px; PADDING-LEFT: 6px; OVERFLOW-X: hidden;  PADDING-BOTTOM: 6px; WORD-BREAK: break-all; LINE-HEIGHT: 130%;  PADDING-TOP: 6px; WORD-WRAP: break-word">          <asp:Label id=&q

  • asp.net(C#) 动态添加非ASP的标准html控件(如添加Script标签)

    复制代码 代码如下: HtmlGenericControl Include2 = new HtmlGenericControl("script"); Include2.Attributes.Add("type", "text/javascript"); Include2.InnerHtml = "alert('JavaScript in Page Header');"; this.Page.Header.Controls.Ad

  • C# 如何设置label(标签)控件的背景颜色为透明

    有时候,我们需要将控件的背景颜色设定为透明,比如说label(标签)控件.那么,如何将控件的背景颜色设定为透明?是不是只要将控件的BackColor属性设为Transparent(透明)就可以了呢?答案是否定的.看似很简单,其实不然,在实际操作过程中,很让人抓狂,抓狂到让你怀疑人生. 关于透明 首先要解释一下,什么叫做透明.在C#这里,透明就是指透过控件的背景,可以看到其父控件(容器)表面的颜色.所谓的透明,其实就是将父控件表面的颜色设定为自己的背景颜色. 设置控件背景颜色为透明的步骤和注意事项

  • JS脚本实现动态给标签控件添加事件的方法

    本文实例讲述了JS脚本实现动态给标签控件添加事件的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> &l

  • JS实现动态给标签控件添加事件的方法示例

    本文实例讲述了JS实现动态给标签控件添加事件的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

  • 设置jquery UI 控件的大小方法

    如下所示: #ui-datepicker-div { font-size: 12px; } 以上这篇设置jquery UI 控件的大小方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Android动态添加设置布局与控件的方法

    本文实例讲述了Android动态添加设置布局与控件的方法.分享给大家供大家参考,具体如下: 有时候我们会在代码端,动态的设置,添加布局和控件.下面我们就看来看一下如何处理,直接上代码,代码里面的注解很清楚了. 布局文件:fragment_hot.xml 说明:这个部局,我用的是scrollView做为基础布局,主要是为了实现一个滚动.这里不多说,这个你可以使用任何布局都可以,这里的id我是提前定义的. 这里面的现在有的布局是我为了看到我在代码端,动态添加的代码,是否可以追加到现有布局的后面而加上

  • Android通过ImageView设置手指滑动控件缩放

    ImageView设置手指滑动缩放效果,具体实现步骤大家通过本文学习下吧! 实现步骤 1, imageview设置scaletype为 android:scaleType="matrix" 2, 设置imageview的setOnTouchListener,重写里面的代码 3, 新建一个matrix, matrix.postScale(scale,scale,缩放中心,缩放中心); image.setImageMatrix(matrix); 这样image的大小就会改变了. 需要注意的

  • JAVA代码设置selector不同状态下的背景颜色

    代码实现Shape 代码实现Selector StateListDrawable与GradientDrawable 的运用 在Android开发中,我们时常会用到自定义drawable样式,在drawable中设置shape样式或是selector选择器,但是有时如果一个xml中需要用到多个drawable样式,并且里面设置的样式只是有细微的差别改变,那么自定义多个drawable样式会显得比较臃肿,使得drawable的xml文件太多,管理麻烦,所以有时本星觉得可以在代码中创建drawable

  • android换肤功能 如何动态获取控件中背景图片的资源id?

    这个是在在做一个换肤功能时遇到的问题. 对于换肤,网上都有示例,可以从别的皮肤安装包中读取所要的资源,前提是你必须先持有这个资源的引用名称,像R.drawable.background(喂,这不是废话嘛).这个换肤的方案原理就是,自身应用的资源名称是R.drawable.background,那皮肤包中应该也是这个名称,然后通过这个名称获取该资源在皮肤包中的具体id,代码: //先获取本地资源引用名称,type name是R.drawable.background中的"drawable"

  • 易语言设置在画板中写出文本的背景颜色

    文本背景颜色属性 操作系统支持:Windows,数据类型:整数型: 例程 说明 本属性用于设置使用"写文本行"在画板中写出的文本的背景颜色. 运行结果: 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持.如果你想了解更多相关内容请查看下面相关链接

随机推荐