C#中pictureBox上如何设置label透明
在pictureBox的Paint事件中写下如下代码
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
foreach (Control C in this.Controls)
{
if (C is Label)
{
Label L = (Label)C;
L.Visible = false;
e.Graphics.DrawString(L.Text, L.Font, new
SolidBrush(L.ForeColor), L.Left - pictureBox1.Left, L.Top - pictureBox1.Top);
}
}
}
或者在载入页面的时候在LOAD中写入下面代码:
pictureBox1.SendToBack();
label1.BackColor = Color.Transparent;
label1.Parent = pictureBox1;
label1.BringToFront();
第一个方法较通用,WINCE上不支持透明属性也可以,但是要自己编写定位代码,他的原理只是找到当前PictureBox上所有的label控件 然后把他们置为不可视!然后重新用DrawString方法把TEXT输出!
第二个方法只能再.net 完整版上实现 且 透明到Panel上 所有只能再Panel上添加图片然后放置!
在pictureBox的Paint事件中写下如下代码
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
foreach (Control C in this.Controls)
{
if (C is Label)
{
Label L = (Label)C;
L.Visible = false;
e.Graphics.DrawString(L.Text, L.Font, new
SolidBrush(L.ForeColor), L.Left - pictureBox1.Left, L.Top - pictureBox1.Top);
}
}
}
或者在载入页面的时候在LOAD中写入下面代码:
pictureBox1.SendToBack();
label1.BackColor = Color.Transparent;
label1.Parent = pictureBox1;
label1.BringToFront();
第一个方法较通用,WINCE上不支持透明属性也可以,但是要自己编写定位代码,他的原理只是找到当前PictureBox上所有的label控件 然后把他们置为不可视!然后重新用DrawString方法把TEXT输出!
第二个方法只能再.net 完整版上实现 且 透明到Panel上 所有只能再Panel上添加图片然后放置!