製作透明窗體辦法有好幾種,各有優缺點.
我們先來看看c#本身提供的辦法
1:通過設定窗體的 transparencykey實現
例:窗體中的白色會變成透明
this.backcolor =color.white; this.transparencykey = color.white;2:通過設定窗體的 opacity 實現
例:窗體的透明度為50%
this.opacity = 0.5;為了更好說明問題,我們先看乙個例項。
(1)新建乙個winform應用程式
(2)formload中新增以下**:
this.backcolor = color.white;
this.transparencykey = color.white;
(3)加入乙個label,text = "transparencykey demo",backcolor = white(或透明)
(4)按f5執行如下圖所示
結論:transparencykey只支援透明或不透明,不支援過度色,比如png中的從不透明到透明的過渡色會顯示出討厭的效果。
再來看看opacity,我們發現它的顯示效果很好,不存在transparencykey的過度色問題,但是opacity設定的是窗體的透明度,和普通視窗相比,只是透明度不同而已,其他沒有區別。如果你把通過opacity製作的透明窗體蓋在其他程式的視窗上,你看得到後面的視窗,卻沒法直接操作後面的窗體。並且該視窗上所有的控制項也會產生透明效果,無法單獨控制。
最後,我要說的是,不管transparencykey的實現,還是opacity的實現,其實都是對setlayeredwindowattributes()函式的封裝,只是引數不同而已。
**:
WPF透明窗體製作
先上效果圖 如下 注 圖中window標籤的name屬性是w。其中border用來實現透明效果,grid用來呈現窗體內的控制項,為了避免窗體內的控制項變成透明的,所以border,grid必須處在同一級別上。其中border用來實現透明效果,grid用來呈現窗體內的控制項,為了避免窗體內的控制項變成...
C 透明窗體製作方法比較(1)
製作透明窗體辦法有好幾種,各有優缺點.我們先來看看c 本身提供的辦法 1 通過設定窗體的 transparencykey實現 例 窗體中的白色會變成透明 this backcolor color.white this transparencykey color.white 2 通過設定窗體的 opa...
VC 製作透明窗體
在2000下 定義常量 define ws ex layered 0x00080000 define lwa alpha 0x00000002 宣告函式 extern c 標頭檔案 產生透明視窗 不要忘了給視窗的exstyle加入ws ex layered屬性 setwindowlong getsa...