.net - 如何在 WinForms 中设置面板的不透明度或透明度?

标签 .net winforms transparency panel opacity

我想知道如何在 C# 中更改或修改面板的透明度,而不是整个表单,而只是面板。我看过很多关于不透明度的 C# 教程,但它是针对表单的。我正在寻找如何仅通过面板来实现这一点。谢谢!

最佳答案

对于仍在寻找完全透明面板的人,我在this blog by William Smash中找到了一个很好的解决方案。谁又从 Tobias Hertkorn on his T# blog 获取了它。我认为值得将其作为答案发布在这里。

C# 代码:

public class TransparentPanel : Panel
{
    protected override CreateParams CreateParams 
    {            
        get {
            CreateParams cp =  base.CreateParams;
            cp.ExStyle |= 0x00000020; // WS_EX_TRANSPARENT
            return cp;
            }
    }
    protected override void OnPaintBackground(PaintEventArgs e) 
    {
        //base.OnPaintBackground(e);
    }
}

VB.Net 代码:

Public Class TransparentPanel
Inherits Panel
    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
        Get
            Dim cp As CreateParams = MyBase.CreateParams
            cp.ExStyle = cp.ExStyle Or &H20 ''#WS_EX_TRANSPARENT
            Return cp
        End Get
    End Property
    Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
    ''#MyBase.OnPaintBackground(e)
    End Sub
End Class

关于.net - 如何在 WinForms 中设置面板的不透明度或透明度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4463363/

相关文章:

android - QLabel透明背景

javascript - ColorBox 框架在 IE 中不可见

c# - 在单元测试中验证交互是否会破坏封装?

c# - GetChildAtPoint 仅返回禁用的控件?

.net - 强制 WCF 主机进入故障状态

c# - C#中的字符串提取混淆

winforms - 仅检查一个ToolStripMenuItem

winforms - Windows 窗体中的透明背景?

.net - API Hooking,在 TerminateProcess 函数上发现意外句柄

.net - 在 NHibernate 中按公式字段排序