2009-10-23 43 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(); 
} 

我猜測你希望面板看起來是半透明的,你必須使用另一種方法並使用表單本身。