C#在PictureBox控件上绘制透明背景文字.
作者:C/S框架网  发布日期:2011/07/16 00:13:16
C#在PictureBox控件上绘制透明背景文字.


我们在窗体设计时在Form上添加一个PictureBox,并设置背景图片,再在PictureBox上叠加一个Label,但无论如何设置Label.BackColor = Color.Transparent,都会显示Form的背景着色。但想要的效果是能看到Label区域后Image上的图片。

如何使Label变为透明将文字显示在PictureBox上呢?

在设计时将Label放在一个PictureBox控件上,然后拖动PictureBox时发现,Label原地不动,其实PictureBox并不是容器尽管它继承Control有Controls属性。所以在设计上需要手工实现代码:

//将Label控件加入PictureBox设为它的子控件
pictureBox1.Controls.Add(label1);

演示代码:
private void button6_Click(object sender, EventArgs e)
{
   //将Label控件加入PictureBox设为它的子控件
   pictureBox1.Controls.Add(label1);
   
   label1.Text = "透明底色\n文本\nC/S框架网 www.csframework.com";
   label1.BackColor = Color.Transparent;//透明底色
   
   //Label在图片上显示的位置
   Rectangle r = new Rectangle(10, 40, label1.Width, label1.Height);
   label1.DrawToBitmap((Bitmap)pictureBox1.Image, r);
   pictureBox1.Refresh();
}



C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇