C# Color.FromArgb()及系統(tǒng)顏色對照表一覽
C#關于顏色值的表示:
常用的顏色值表示方式有兩種,一種是10進制的RGB值表示,如(0,113,255),三個值分別表示(紅,綠,藍);一種是16進制的顏色碼表示,如#ff3212。這兩種形式在編程中都可以用到。若是在VS設計器中,設置某個控件的前景色或背景色時,可直接用0,113,255或#ff3212的形式,而在后臺代碼中,也可以通過Color.FromArgb()方法使用這兩種形式來定義顏色。
Color.FromArgb()方法的重載及使用
Color.FromArgb()方法共有四種重載形式,MSDN上列出來這四種重載方法的說明已足夠解釋各個參數(shù)的含義。
其中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)的參數(shù)是int型,因此必須使用強制轉化Color.FromArgb((int)0xffdd2378),不過即使這樣,程序仍會報錯,需要使用unchecked重寫才能成功(unchecked 關鍵字用于取消整型算術運算和轉換的溢出檢查)。
我通過幾句簡單的代碼來說明這個問題,代碼如下:
button1.BackColor = Color.FromArgb(0xdd2378); button2.BackColor = Color.FromArgb(0x7fdd2378); unchecked //在后續(xù)的作用域范圍內,取消整型算術運算和轉換的溢出檢查 { button3.BackColor = Color.FromArgb((int)0xffdd2378); }
如圖所示,這是使用Color.FromArgb (Int32)方法設置按鈕背景色時使用三個不同值的效果。其差別一目了然。
C#中的顏色對照表
使用方法:
Color c1 = Color.FromArgb(32,178,170); //此方法設置的顏色,其透明度屬性alpha=255,完全不透明。 Color c2 = Color.FromKnownColor(KnownColor.LightSeaGreen); Color c3 = System.Drawing.Color.Lime;
顏色對照表 參考下面:
補充:# 顏色表
以下的顏色代碼取自HTML規(guī)范,這些顏色的名稱對應于KnownColor的屬性。比如,你可以用以下代碼來創(chuàng)建一個Color對象:
Color c = Color.FromKnownColor(KnownColor.colorname);
所有的colorname在后面的表格中一一列出,這些顏色對應的RGB值列在名字的后面,你可以使用FromArgb方法來創(chuàng)建Color對象。以下兩行實際上創(chuàng)建了同一種顏色:
Color c1 = Color.FromArgb(32,178,170); Color c2 = Color.FromKnownColor(KnownColor.LightSeaGreen);
在下面這張表中,我嚴格依照顏色的RGB值設置對應顏色的顯示。你所看到的真實效果依賴于瀏覽器是否準確處理了對應24位色的顏色顯示(一些瀏覽器可能將某些顏色映射成“最接近的網(wǎng)頁調色板顏色”),顯示器的調節(jié)或者你顯卡的校正值。因此顯示效果會略有不同。
補充:
還有一些獲取顏色的方式:
Color c1 = Color.AliceBlue; //Color類自帶的靜態(tài)顏色對象Color c2 = Color.FromArgb(0x20B2AA); //網(wǎng)頁里面提取的顏色(原格式為#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
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
C#實現(xiàn)目錄跳轉(TreeView和SplitContainer)的示例代碼
本文主要介紹了C#實現(xiàn)目錄跳轉(TreeView和SplitContainer)的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07C#過濾DataTable中空數(shù)據(jù)和重復數(shù)據(jù)的示例代碼
這篇文章主要給大家介紹了關于C#過濾DataTable中空數(shù)據(jù)和重復數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01