我試過Visual C#踢code for an alpha-blended form。這工作(只要我刪除TransparencyKey
財產);也就是說,我可以使用W3C的PNG alpha test image並查看下面的其他窗口,但是使窗體上的所有控件都不可見。據推測,他們根本不畫,因爲OnPaint
被覆蓋。我試過叫超級的OnPaint
:在alpha混合表單上顯示控件
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
UpdateFormDisplay()
MyBase.OnPaint(e)
End Sub
,但是這並沒有改變任何東西。 (呼叫MyBase.OnPaint
第一不作任何差別無論是。)
不幸的是關於阿爾法混合形式的大多數文章專注於純粹的閃屏沒有任何控制他們 - 但我們需要它首先顯示登入場面板,然後進度條。
順便說一句,控件不需要透明度;只是在外部邊緣,PNG的透明度纔是真正重要的。因此,通過在這一切之上添加另一個表單(兩個表單總是一起移動)來彌補這一點可能就足夠了,但我更喜歡更平滑的解決方案。
雖然這個解決方案實際上使用了兩種形式的技巧:「洞」被切割成半透明的形式;那麼下面的表格可以在這些點上進行控制。在任何情況下,儘管形成一個優雅的解決方案,這似乎工作得很好。謝謝! – 2008-09-27 16:04:33