我试图创建一个显示在面板中的半透明表单。我可以在面板中显示表单,但不透明度属性不起作用,表单不透明。
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();
}
任何想法如何处理? 谢谢你的回答!
答案 0 :(得分:3)
Winforms仅支持顶级表单的部分透明度。如果要创建具有部分透明UI元素的应用程序,则需要使用WPF,或者自己处理所有绘图。很抱歉成为坏消息的承担者。
答案 1 :(得分:0)
您的表单被添加为panel1的子控件,panel1是主窗体的子窗口,默认Opacity = 1。
要查看Opacity的工作原理,请尝试以下操作:
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();
}
我想你希望面板看起来是半透明的,你必须使用另一种方法并使用表单本身。