我想知道如何在 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/