2016-09-24 178 views
0

我想在我的本地數據庫中保存用戶選擇的顏色(這是一個Xamarin.Forms.Color),所以我使用ToString方法將它保存爲字符串,保存的顏色使用以下語法:[Color: A = 1,R = 1,G = 0.400000005960464,B = 1,色調= 0.833333313465118,飽和度= 1,亮度= 0.699999988079071] 我想從數據庫中檢索它,但我必須將其轉換回Xamarin.Forms。顏色(它有像Color.FromHex或Color.FromHlsa或Color.FromRgb ...)的方法Xamarin Forms Color

任何人都可以告訴我最好的方法來將其轉換回來嗎?

感謝

+0

如何從用戶獲取顏色?它是常量的列表,還是來自rgb或十六進制? – FetFrumos

+0

這是一個xamarin表單顏色列表 – Mireille

回答

0

Xamarin.FormsColor s可以從ARGB或從AHSL創建。從一種模式到另一種模式的轉換是自動進行的,因此您不必將兩種格式都保存在數據庫中(您正在存儲ARGBHSL)。

現在,有很多的方法來創建,由這些值的子集的顏色:

public Color(double r, double g, double b, double a); 
public static Color FromHex(string hex); //one of the following: #rgb, #argb, #rrggbb, #aarrggbb, the leading # is optional 
public static Color FromUint(uint argb); 
public static Color FromRgba(int r, int g, int b, int a); 
public static Color FromRgb(int r, int g, int b); 
public static Color FromRgba(double r, double g, double b, double a); 
public static Color FromRgb(double r, double g, double b); 
public static Color FromHsla(double h, double s, double l, double a = 1d); 

我敢肯定你會發現無論是構造或那些適合工廠方法你需要。

+0

感謝您的回答我會嘗試將RGBA顏色保存爲四個不同的變量並獲得它從數據庫中返回。 – Mireille