我尝试了 Visual C# Kicks代码的 alpha 混合形式。这有效(一旦我删除该TransparencyKey
属性);也就是说,我可以使用 W3C 的PNG alpha 测试图像并查看下面的其他窗口,但会使表单上的所有控件不可见。据推测,它们根本没有被绘制,就像OnPaint
被覆盖一样。我尝试调用超类的OnPaint
:
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
UpdateFormDisplay()
MyBase.OnPaint(e)
End Sub
,但这并没有改变任何东西。MyBase.OnPaint
(先打电话也没有任何区别。)
不幸的是,大多数关于 alpha 混合表单的文章都集中在没有任何控件的纯启动屏幕上——但我们需要一个面板,它首先显示登录字段,然后是进度条。
顺便说一句,控件不需要透明度。只有在外部边缘,PNG 的透明度才真正重要。因此,通过在这一切之上添加另一种形式(两者总是串联移动)来伪造这一点可能就足够了,但我更喜欢更平滑的解决方案。