1:通過設置窗體的 TransparencyKey實現
例:窗體中的白色會變成透明
this.BackColor =Color.White; this.TransparencyKey = Color.White;
TransparencyKey只支持透明或不透明,不支持過度色,比如PNG圖片中的從不透明到透明的過渡色會顯示出討厭的效果
2:通過設置窗體的 Opacity 實現
例:窗體的透明度為50%
this.Opacity = 0.5;
Opacity,我們發現它的顯示效果很好,不存在TransparencyKey的過度色問題,但是Opacity設置的是窗體的透明度,和普通窗口相比,只是透明度不同而已,其他沒有區別。如果你把通過Opacity制作的透明窗體蓋在其他程序的窗口上,你看得到后面的窗口,卻沒法直接操作后面的窗體。並且該窗口上所有的控件也會產生透明效果,無法單獨控制。
不管TransparencyKey的實現,還是Opacity的實現,其實都是對SetLayeredWindowAttributes()函數的封裝,只是參數不同而已
3、有些情況下滿足不了需要,這里再提供2種方法供參考: UpdateLayeredWindow()和GraphicsPath。
具體查看:http://www.cnblogs.com/jxsoft/archive/2011/03/09/1978156.html