主题:急切求助:如何使Label的背景色为透明的?
xinying2005
[专家分:0] 发布于 2006-01-19 11:18:00
在建立了一个MDI窗体后,为父窗体的BackGroundImage设置了一幅图片,在图片上加了一个Label控件,Label控件的Text 设置了“复杂工业工业过程”。但在运行时,父窗体的窗口中,Label的背景色不是透明的,很是影响感观效果 。
请教各位,应该如何才能使这种情况下的Label控件背景色为透明的呢 或者说不影响感观效果? 谢谢各位!!
回复列表 (共10个回复)
沙发
jzyray [专家分:20610] 发布于 2006-01-19 17:56:00
设定控件是否支持透明是需要在控件的构造函数中设定。
不过label的构造函数我们是不能修改的。
所以,要么自己重新做一个控件,要么用GDI+绘制字符串。
板凳
xinying2005 [专家分:0] 发布于 2006-01-20 08:42:00
但是我看到过字体在背景下的设计 我认为我现在没能做出来的原因是我没发现
谢谢大家继续发表对此帖的帮助!
3 楼
zergvb [专家分:780] 发布于 2006-01-20 09:46:00
直接用PS把文字写在图片上不就好拉
4 楼
xinying2005 [专家分:0] 发布于 2006-01-20 09:58:00
什么是ps?如何用 ? 谢谢!!!
5 楼
bvtc [专家分:10] 发布于 2006-01-20 23:59:00
找msdn,里面有详细的说明.控件本身是不支持透明的,但你可以修改contrlstyle枚举使它支持透明,但这是比较复杂的。我的建议,不如直接用GDI+绘出来够快。
6 楼
listen12345 [专家分:260] 发布于 2006-02-14 14:56:00
其實,這個需要了解兩方面的技術就可以完成。
一、在picturebox裡,賦圖象,並寫入文字。代碼如下:
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
Dim strTitle As String = "大家好!"
Dim fntTitle As New Font("新細明體, 12pt", 28, FontStyle.Bold, GraphicsUnit.Pixel)
e.Graphics.DrawString(strTitle, fntTitle, New SolidBrush(Color.Red), 82, 8)
End Sub
二、了解MdiClient的用法,將picturebox裡的圖象寫入MdiClient裡即可。代碼如下:
Private Sub ClientArea_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles ClientArea.Paint
e.Graphics.DrawImage(PictureBox1.Image, 0, 0, ClientArea.Width, ClientArea.Height)
Dim strTitle As String = "大家好!"
Dim fntTitle As New Font("新細明體, 12pt", 28, FontStyle.Bold, GraphicsUnit.Pixel)
e.Graphics.DrawString(strTitle, fntTitle, New SolidBrush(Color.Red), 150, 150)
End Sub
Private Sub ClientArea_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles ClientArea.Resize
ClientArea.CreateGraphics.DrawImage(PictureBox1.Image, _
0, 0, ClientArea.Width, ClientArea.Height)
Dim strTitle As String = "大家好!"
Dim fntTitle As New Font("新細明體, 12pt", 28, FontStyle.Bold, GraphicsUnit.Pixel)
ClientArea.CreateGraphics.DrawString(strTitle, fntTitle, New SolidBrush(Color.Red), 150, 150)
End Sub
7 楼
cnvictor [专家分:100] 发布于 2006-02-18 12:01:00
用COLOR类的TRANSPARENT属性 就可以。
代码:LABEL1.BACKCOLOR=COLOR.TRANSPARENT
8 楼
xinying2005 [专家分:0] 发布于 2006-02-19 18:53:00
LABEL1.BACKCOLOR=COLOR.TRANSPARENT
我试了 ,不行。
谢谢你再帮俺想想办法!!
9 楼
海上土拨鼠 [专家分:60] 发布于 2006-02-25 16:40:00
PS=PhotoShop
10 楼
anlige [专家分:270] 发布于 2007-02-28 18:27:00
还是直接用GDI+画图吧!把字符串写到背景上!简单省力!最好写到picturebox的paint事件里!
我来回复