透明Panel的實現方法。通常只需要將backcolor設定為transparent即可,但是此時panel的顏色會與form或父panel顏色一致,往往這並不是我們需要的。
此時我們可以用另一種方法,panel1.BackColor = Color.FromArgb(65, 204, 212, 230);通過調整顏色值,即實現了panel透明,又實現了兩個panel顏色不同的效果。
.NET架構中的顏色基於4種成份,透明度,紅,綠和藍.每一種成份都是一個位元組,在0--255之間取值.
Color結構代表顏色,當類和方法要作用於顏色的時候,它們作用於Color結構的一個執行個體.Color結構通過表態屬性公開了140個命名顏色,這些屬性返回預先建立的Color對象.
Color newColor = Color.Red;
建立Color執行個體的另一種方式是調用靜態FromArgb 方法,該方法有4個重載方式.
1.建立Color執行個體的參數 成份為4種顏色成份
Color c = Color.FromArgb (100,200,200,200);
第1個參數 為透明度(alpha)參數 ,其後為紅,綠和藍.
2.只接受紅,綠,藍三種原色,透明度設定為預設,即完全不透明.
Color c = Color.FromArgb (200,200,200);
3.從一個現在的Color對象建立一個新的Color執行個體,只修改透明度成份
Color c = Color.FromArgb (100,Color.PowderBlue);
4.用一個形式為AARRGGBB的組合整數建立一個Color執行個體
Color c = Color.FromArgb (0x64C8C8FF);
還可以通過調用靜態FromKnownColor方法來建立Color對象.它接受KnownColor枚舉值作為參數 .
Color c = Color.FromKnownColor(KnownColor.PowderBlue);
再有一個方式就是調用靜態FromName方法,它接受一個字串參數 ,這個字串必須包含一個KnownColor枚舉值的名稱.
Color c = Color.FromName("PowderBlue");
Color結構有4種顏色成份的唯讀屬性,A,R,G,B.可以使用這些屬性提取各種成份,並調配成新的顏色.
其他一些非靜態屬性包含:
IsNamedColor Boolean值,如果顏色值在這140個命名顏色中時,值為true,否則為false.
IsKnownColor Boolean值,如果顏色值是KnownColors枚舉的顏色之一時,值為true
IsSystemColor Boolean值,如果顏色值是SystemColors類的屬性值之一時,值為true.
系統色彩
SystemColors類封裝了26種系統色彩,這個類可以通過靜態屬性使用顏色.
Color c = SystemColors.WindowText;
KnownColor枚舉包含了SystemColors類的26種顏色值,及Color結構的靜態屬性所公開的140種顏色值