如何在SQLite数据库中存储Windows.UI.Color对象?

时间:2013-02-21 17:21:01

标签: c# sqlite xaml colors windows-store-apps

我使用SQLite Datatabase来存储Windows 8 Store App中开发的C# and XAML数据。

现在我正在寻找一种简单的方法来存储一个Color对象,该对象应该在此数据库中用作XAML Color Windows.UI.Color )。 所以我想我必须在这种情况下将Color对象转换为字符串或整数

我可以使用Color方法将ToString()转换为字符串表示形式但是如何将其转换回来?

2 个答案:

答案 0 :(得分:2)

对此的解决方案是将ARGB字节值存储在数据库中,然后您可以使用Color.FromArgb(a, r, g, b)方法从这些存储的字节值中获取颜色。

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

答案 1 :(得分:2)

我正在尝试以下答案来帮助你。

  1. 假设您希望存储ColorObject.ToString()值,例如#659EBCF5
  2. 您可以将其作为varchar aka string保存在SqLite中。
  3. 当您需要它时,请从SqLite读取并将其存储到变量say colorString。
  4. 假设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);