【问题标题】:C# Transparent Form in Panel面板中的 C# 透明表单
【发布时间】:2010-12-09 09:44:02
【问题描述】:

我正在尝试创建一个显示在面板中的半透明表单。我可以在面板中显示表单,但 opacity 属性不起作用并且表单不透明。

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();
}

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

【问题讨论】:

    标签: c# .net winforms opacity


    【解决方案1】:

    您的表单被添加为 panel1 的子控件,该子控件是默认 Opacity = 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();
    }
    

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

    【讨论】:

      【解决方案2】:

      Winforms 仅支持顶级表单的部分透明。如果要创建具有部分透明 UI 元素的应用程序,您要么需要使用 WPF,要么自己处理所有绘图。很抱歉成为坏消息的承担者。

      【讨论】:

        猜你喜欢
        • 2013-01-12
        • 1970-01-01
        • 2011-05-17
        • 2015-07-08
        • 1970-01-01
        • 2011-09-08
        • 2017-10-15
        • 2011-04-16
        • 1970-01-01
        相关资源
        最近更新 更多