C# 具有透明背景的UI不会';不显示下一个直接层

C# 具有透明背景的UI不会';不显示下一个直接层,c#,winforms,background,transparent,C#,Winforms,Background,Transparent,如果我们将任何UI的背景设置为透明,它不会显示背景下的内容,这意味着任何UI或容器。相反,它显示窗体的默认背景,即最下面的背景 我该如何解决这个透明度问题?不幸的是,这是故意的: WinForms中的透明控件相对于其 父控件,而不是其他控件。WinForms中的透明度更类似于 比真实的透明更能伪装。一个透明的控件不需要 实际上,让您通过表单看到它背后的控件。它要求 它的父控件在“透明”控件上绘制自己的背景。 这就是为什么透明控件显示其背后的窗体,但覆盖 启动任何其他控件 链接中有一些代码演示了

如果我们将任何UI的背景设置为透明,它不会显示背景下的内容,这意味着任何UI或容器。相反,它显示窗体的默认背景,即最下面的背景


我该如何解决这个透明度问题?

不幸的是,这是故意的:

WinForms中的透明控件相对于其 父控件,而不是其他控件。WinForms中的透明度更类似于 比真实的透明更能伪装。一个透明的控件不需要 实际上,让您通过表单看到它背后的控件。它要求 它的父控件在“透明”控件上绘制自己的背景。 这就是为什么透明控件显示其背后的窗体,但覆盖 启动任何其他控件


链接中有一些代码演示了解决方法。

Windows窗体控件不支持真正的透明性。透明Windows窗体控件的背景由其父控件绘制

为控件提供透明的背景色 这将使您的控件支持透明背景色

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

this.BackColor = Color.Transparent;

他们对父母是透明的。这是表格。如果希望它们对其他控件透明,请更改父属性。