[C#][VB.NET]設定.NET透明表單
Abstract
- Introduction
- Form.Opacity屬性設定不透明度
- Form.TransparencyKey屬性設定透明的顏色
- Form.Opacity VS Form.TransparencyKey
- Conclusion
Introduction
在.NET WinForm程式中,要設定透明表單有兩種方式。一種是用Form.Opacity屬性來設定表單的不透明度,一種則是用Form.TransparencyKey屬性來設定表單上視為透明的顏色。本篇將會對兩種方法做個簡單的介紹,並針對兩者做點小小的比較。
Form.Opacity屬性設定不透明度
以Form.Opacity屬性為例,該屬性值所設定的是0~1之間的雙精度浮點數(Double),用以表示表單的不透明度比例。如下圖所示,該值越小越透明、越大則越不透明。
完整範例如下:
VB.NET
C#
Form.TransparencyKey屬性設定透明的顏色
要用Form.TransparencyKey屬性來設定表單透明度,只須把該屬性設為欲透明的顏色,則當表單上存在著被設為透明色的顏色區塊時,該顏色區塊就會被視為是透明的。用該方法設定的透明效果跟用Form.Opacity的方法是不同的。該方法的透明是完全的透明(透明度100%),且若用滑鼠點選在表單中透明的區塊上,滑鼠的點選動作會穿透目前的表單點選到目前表單下方的視窗,而Form.Opacity的透明除非是設為完全透明,不然無法穿透目前的表單。
**P.S.**Form.Opacity = 0 雖然也可以完全穿透目前表單,但是表單上面的元件也會跟著透明。
Form.Opacity VS Form.TransparencyKey
- 可調整透明度比例
- 點選表單透明區塊可穿透表單
- 可設定表單一部份為透明區塊,只會影響跟設定相同顏色的區塊
- 點選表單不完全透明區塊(Form.Opacity != 0)不可穿透表單
- 透明度會影響整個表單上的元件
- 不可調整透明度比例
Conclusion
本篇介紹了WinForm中改變表單透明度的兩種方法。雖然兩種方法都可以達到透明表單的效果,但在實際的應用上,我個人覺得用Form.TransparencyKey來設定表單透明度較為實用。雖此方法無法調整透明程度,但是其所具備的穿透透明區塊與可透明表單中部分區塊的特性,大幅增加了應用上的彈性。