3

如果我们将任何 UI 的背景设置为透明,则它不会显示其下方的内容,即任何 UI 或容器。相反,它显示了表单的默认背景,即最下方。

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

4

2 回答 2

2

不幸的是,这是设计使然:

http://support.microsoft.com/kb/943454

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

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

于 2012-07-18T16:50:36.767 回答
0

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

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

SetStyle(ControlStyles.SupportsTransparentBackColor, true);

this.BackColor = Color.Transparent;
于 2012-07-18T16:55:50.117 回答