1. 程式人生 > 程式設計 >C# Color.FromArgb()及系統顏色對照表一覽

C# Color.FromArgb()及系統顏色對照表一覽

C#關於顏色值的表示:

常用的顏色值表示方式有兩種,一種是10進位制的RGB值表示,如(0,113,255),三個值分別表示(紅,綠,藍);一種是16進位制的顏色碼錶示,如#ff3212。這兩種形式在程式設計中都可以用到。若是在VS設計器中,設定某個控制元件的前景色或背景色時,可直接用0,255或#ff3212的形式,而在後臺程式碼中,也可以通過Color.FromArgb()方法使用這兩種形式來定義顏色。

Color.FromArgb()方法的過載及使用

Color.FromArgb()方法共有四種過載形式,MSDN上列出來這四種過載方法的說明已足夠解釋各個引數的含義。

C# Color.FromArgb()及系統顏色對照表一覽

其中alpha分量值即透明度設定要比較注意:

Color.FromArgb (Int32,Int32,Int32)方法是沒有設alpha值的,預設為255,即不透明。而在使用Color.FromArgb (Int32)方法時,alpha值是預設為0的,例16進位制顏色碼#dd2378,使用Color.FromArgb (0xdd2378)來定義顏色,則alpha值是預設為0,該顏色是全透明的,所以看不到該顏色。要想顯示出該顏色,必須設定alpha值>0,如:Color.FromArgb (0x7fdd2378);此時顏色為半透明。當然也可以將alpha值設定為全不透,其值為0xffdd2378。

不過在使用該值時有些注意事項,因為0xffdd2378是無符號整型uint型別,而Color.FromArgb (Int32)的引數是int型,因此必須使用強制轉化Color.FromArgb((int)0xffdd2378),不過即使這樣,程式仍會報錯,需要使用unchecked重寫才能成功(unchecked 關鍵字用於取消整型算術運算和轉換的溢位檢查)。

我通過幾句簡單的程式碼來說明這個問題,程式碼如下:

 button1.BackColor = Color.FromArgb(0xdd2378);
 button2.BackColor = Color.FromArgb(0x7fdd2378);
 unchecked //在後續的作用域範圍內,取消整型算術運算和轉換的溢位檢查
 {
 button3.BackColor = Color.FromArgb((int)0xffdd2378);
 }

如圖所示,這是使用Color.FromArgb (Int32)方法設定按鈕背景色時使用三個不同值的效果。其差別一目瞭然。

C# Color.FromArgb()及系統顏色對照表一覽

C#中的顏色對照表

使用方法:

Color c1 = Color.FromArgb(32,178,170); //此方法設定的顏色,其透明度屬性alpha=255,完全不透明。 
Color c2 = Color.FromKnownColor(KnownColor.LightSeaGreen);
Color c3 = System.Drawing.Color.Lime;

顏色對照表 參考下面:

補充:# 顏色表

以下的顏色程式碼取自HTML規範,這些顏色的名稱對應於KnownColor的屬性。比如,你可以用以下程式碼來建立一個Color物件:

Color c = Color.FromKnownColor(KnownColor.colorname);

所有的colorname在後面的表格中一一列出,這些顏色對應的RGB值列在名字的後面,你可以使用FromArgb方法來建立Color物件。以下兩行實際上建立了同一種顏色:

Color c1 = Color.FromArgb(32,170);
Color c2 = Color.FromKnownColor(KnownColor.LightSeaGreen);

在下面這張表中,我嚴格依照顏色的RGB值設定對應顏色的顯示。你所看到的真實效果依賴於瀏覽器是否準確處理了對應24位色的顏色顯示(一些瀏覽器可能將某些顏色對映成“最接近的網頁調色盤顏色”),顯示器的調節或者你顯示卡的校正值。因此顯示效果會略有不同。

補充:

還有一些獲取顏色的方式:

Color c1 = Color.AliceBlue; //Color類自帶的靜態顏色物件Color c2 = Color.FromArgb(0x20B2AA);  //網頁裡面提取的顏色(原格式為#20B2AA)

C#顏色和名稱對照表

A B C D E F G H I J K L M

N O P Q R S T U V W X Y Z

C# Color.FromArgb()及系統顏色對照表一覽

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援我們。如有錯誤或未考慮完全的地方,望不吝賜教。