【问题标题】:semi-transparent form but opaque Controls in C#C# 中的半透明形式但不透明的控件
【发布时间】:2011-07-09 05:58:34
【问题描述】:

如何在C# windows窗体应用中制作半透明窗体

我已经尝试了TransparentKey,它使其完全透明。并尝试了Opacity,但它会影响整个表单(带有控件)。

我只希望表单部分是半透明的,而不是控件。

【问题讨论】:

    标签: c# winforms transparency


    【解决方案1】:

    我发现 Hatch Brush 很奇怪,

    代替:

    protected override void OnPaintBackground(PaintEventArgs e) {
      var hb = new HatchBrush(HatchStyle.Percent80, this.TransparencyKey);
      e.Graphics.FillRectangle(hb, this.DisplayRectangle);
    }
    

    我用过:

    protected override void OnPaintBackground(PaintEventArgs e) {
      var sb = new SolidBrush(Color.FromArgb(100, 100, 100, 100));
      e.Graphics.FillRectangle(sb, this.DisplayRectangle);
    }
    

    【讨论】:

    • 完美,只有你的回答对我有用
    • 它是否用于 WPF,因为我无法在 Windows 窗体中找到 OnPaintBackground 事件
    • 是的,这个 WPF 不是 winforms。可以使用 wpf 为什么还要使用 winforms?
    【解决方案2】:

    有一种解决方案可以为 Control(不是 Form)添加半透明:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
    
            // Apply opacity (0 to 255)
            panel1.BackColor = Color.FromArgb(25, panel1.BackColor);
        }
    

    在 Visual Studio 中:(仅在执行期间激活 alpha)

    在 Windows 7 上执行:

    在旧的 WIndows 2003 服务器上执行:

    来源:https://stackoverflow.com/a/4464161/1529139

    【讨论】:

    • 在你的例子中表格不是半透明的......,还是我错过了什么?
    • 可能背景太统一了,不够清晰,但它确实适用于 Alpha 通道。如果你仔细观察,你会看到阴影:)
    • 我测试过,结果如下:button1不透明,panel1半透明,form1不透明。你看不到表格后面是什么,但问题是关于一个半透明的表格。所以我有同样的问题,但你的答案似乎不正确......
    • 我明白你的意思,你是真的。事实上,我已经回答了Control,但问题是关于Form...我会更新
    • 在我投了反对票之后,谁支持了这个问题?这个答案应该被删除,因为它会把人们引向错误的方向。
    【解决方案3】:

    你可以使用一个hatch brush 有一定的百分比,例如:

        using System.Drawing.Drawing2D;
    
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            var hb = new HatchBrush(HatchStyle.Percent50, this.TransparencyKey);
    
            e.Graphics.FillRectangle(hb,this.DisplayRectangle);
        }
    

    【讨论】:

    • 天哪。结果很恶心。抱歉,但确实如此。
    猜你喜欢
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 2021-11-01
    • 1970-01-01
    • 2018-12-26
    • 2016-05-25
    • 2016-02-15
    相关资源
    最近更新 更多