如果我们将任何 UI 的背景设置为透明,则它不会显示其下方的内容,即任何 UI 或容器。相反,它显示了表单的默认背景,即最下方。
如何解决这个透明度问题?
如果我们将任何 UI 的背景设置为透明,则它不会显示其下方的内容,即任何 UI 或容器。相反,它显示了表单的默认背景,即最下方。
如何解决这个透明度问题?
不幸的是,这是设计使然:
http://support.microsoft.com/kb/943454
WinForms 中的透明控件相对于它们的父控件是透明的,而不是相对于其他控件。WinForms 中的透明度更像是伪装,而不是真正的透明度。透明控件实际上并不能让您通过表单看到它背后的控件。它要求其父级在“透明”控件上绘制自己的背景。这就是为什么透明控件显示其背后的窗体,但覆盖任何其他控件的原因。
链接中有一些代码演示了解决方法。
Windows 窗体控件不支持真正的透明度。透明 Windows 窗体控件的背景由其父级绘制。
为您的控件提供透明背景色 这将使您的控件支持透明背景色。
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.BackColor = Color.Transparent;