2009-10-23 33 views
0

即时通讯尝试创建一个半透明的表格,并在面板中显示。我可以在面板中显示窗体,但不透明属性不会工作,窗体不透明。面板中的C#透明表格

private void button1_Click(object sender, EventArgs e) 
{ 
     Form fr = new Form(); 
     fr.FormBorderStyle = FormBorderStyle.None; 
     fr.BackColor = Color.Black; 
     fr.TopLevel = false; 
     fr.Opacity = 0.5; 
     this.panel1.Controls.Add(fr); 
     fr.Show(); 
} 

任何想法我可以如何处理? 感谢您的回答!

回答

3

Winforms仅支持顶级窗体的部分透明度。如果要使用部分透明的UI元素创建应用程序,则需要使用WPF或自己处理所有绘图。对不起,成为坏消息的持有者。

+3

有时真相会伤害:P – 2009-10-23 10:21:13

0

您的形式被添加作为PANEL1的子控件这是最主要的形式,这是默认的不透明度的孩子= 1

要看到工作透明度,试试这个:

private void button1_Click(object sender, EventArgs e) 
{ 
    Form fr = new Form(); 
    fr.FormBorderStyle = FormBorderStyle.None; 
    fr.BackColor = Color.Blue; 
    fr.TopLevel = false; 
    //fr.Opacity = 0.5; 
    this.Opacity = 0.5; // add this 
    this.panel1.Controls.Add(fr); 
    fr.Show(); 
} 

我猜测你希望面板看起来是半透明的,你必须使用另一种方法并使用表单本身。