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

本文关键字:Windows UI Color 对象 存储 SQLite 数据库 | 更新日期: 2023-09-27 18:00:38

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

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

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

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

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

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

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

  1. 假设您希望存储ColorObject.ToString()值,例如#659EBCF5
  2. 请随意将其保存在SqLite中,作为varchar或字符串
  3. 当你需要它时,从SqLite中读取并将其存储到一个变量中,比如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);