【发布时间】:2008-09-27 09:50:10
【问题描述】:
我尝试了 Visual C# Kicks code for an alpha-blended form。这有效(只要我删除 TransparencyKey 属性);也就是说,我可以使用 W3C 的 PNG alpha test image 并查看下面的其他窗口,但会使表单上的所有控件不可见。据推测,它们根本没有被绘制,因为OnPaint 被覆盖了。我尝试调用超类的OnPaint:
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
UpdateFormDisplay()
MyBase.OnPaint(e)
End Sub
,但这并没有改变任何东西。 (调用MyBase.OnPaint first 也没有任何区别。)
不幸的是,大多数关于 alpha 混合表单的文章都集中在没有任何控件的纯初始屏幕上——但我们需要一个面板,它首先显示登录字段,然后是进度条。
顺便说一下,控件不需要透明度;只有在外部边缘,PNG 的透明度才真正重要。因此,通过在这一切之上添加另一种形式来伪造这一点(两者总是串联移动)可能就足够了,但我更喜欢更平滑的解决方案。
【问题讨论】:
标签: winforms .net-2.0 alphablending