2013-02-21 3 views
1

Iam с использованием SQLite Datatabase для хранения данных моего Windows 8 Store App, разработанного в C# and XAML.Как сохранить объект Windows.UI.Color в базе данных SQLite?

А теперь Iam ищет легкий способ для хранения Color объекта, который должен быть использован в качестве XAML Color (Windows.UI.Color) в этой базе данных. Так что я думаю, что мне нужно Преобразование Color Объект в строку или целое число в таком случае !?

Я могу преобразовать Color с помощью метода ToString() в строковое представление, но как его преобразовать?

+0

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.color.fromargb.aspx –

ответ

2

Я пытаюсь с моим следующим ответом, чтобы помочь вам.

  1. Предположим, что вы хотите сохранить значение ColorObject.ToString(), например. # 659EBCF5
  2. Не стесняйтесь, это сохранить его в SqLite как varchar aka string.
  3. Когда вам это нужно, прочитайте из SqLite и сохраните его в переменной say colorString.

Предполагая, что colorString = "# 659EBCF5";

...

colorString = colorString.Substring(1, colorString.Length - 1);//remove the # 
     System.Globalization.NumberStyles style = System.Globalization.NumberStyles.HexNumber; 
     int hexColorAsInteger = int.Parse(colorString , style); 
     byte[] colorData = BitConverter.GetBytes(hexColorAsInteger); 

     //Mind the order. 
     byte alpha = colorData[3]; 
     byte red = colorData[2]; 
     byte green = colorData[1]; 
     byte blue = colorData[0]; 

     Color color = Color.FromArgb(alpha, red, green, blue); 
+0

Понял, что в любой шестнадцатеричной строки после # eg «# 659EBCF5» 65 - альфа, 9E - красный, BC зеленый, а F5 - синий в шестнадцатеричном формате. Поэтому требуется немного меньше парсинга, и вам просто нужно преобразовать эти шестнадцатеричные значения в десятичные и легко построить цвет. :) –

Смежные вопросы