不继承最顶层的不透明度

Not inherrit topmost form opacity

如果我设置最顶层表单的不透明度,则所有子控件都与表单一样透明。使用transparencyKey时也是如此,所有的子控件都具有相同的透明颜色。

我希望实现的是在表单上进行控制并有选择地选择哪个应该继承这个属性。即使需要向表单添加子表单,也可以这样做吗?

任何 help/suggestions 将不胜感激,因为我找不到任何适合我的解决方案。

不,这通常是不可能的,因为它不是特定于 c#,而是 Microsoft Windows 的工作方式。

有两种方法可以在 Windows 上获得适当的透明度:WS_EX_LAYERED 和 WS_EX_NOREDIRECTIONBITMAP。两者都无法使用 Winforms 访问,并且有充分的理由:您必须自己进行所有绘制,包括子控件。

不过,WPF 本身就支持这一点。