2016-09-24 4 views
0

Я хочу сохранить выбранный пользователем цвет (это Xamarin.Forms.Color) в моей локальной базе данных, поэтому я сохранил его как строку, используя метод ToString, сохраненный цвет в этом синтаксисе: [Цвет: A = 1, R = 1, G = 0,400000005960464, B = 1, Hue = 0.833333313465118, Saturation = 1, Luminosity = 0.699999988079071] Я хочу получить его из базы данных, но мне нужно преобразовать его обратно в Xamarin.Forms. Цвет (у него есть метод, например Color.FromHex или Color.FromHlsa или Color.FromRgb ...)Xamarin Forms Color

Может ли кто-нибудь сказать мой лучший способ его вернуть?

Благодаря

+0

Как вы можете получать Цвет от пользователя? Является ли это списком констант, или из rgb, или из hex? – FetFrumos

+0

это список цветов форм xamarin – Mireille

ответ

0

Вы можете сохранять значение RGB в локальной базе данных, а затем преобразовать эти целые числа обратно с Color.FromRBG(n,n,n); или вы можете хранить строку и сделать это с Color.FromHex("#"+ localDBProperty); Здесь есть ссылка ссылка:

https://developer.xamarin.com/api/member/Xamarin.Forms.Color.FromHex/p/System.String/

+0

Спасибо за ваш ответ, вам немного нужно получить значения (double), а затем преобразовать их в hex – 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