1

我正在使用 aSQLite Datatabase来存储我Windows 8 Store App开发的数据C# and XAML

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

我可以将ColorwithToString()方法转换为字符串表示形式,但如何将其转换回来?

4

2 回答 2

2

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

  1. 假设您希望存储 ColorObject.ToString() 值,例如 #659EBCF5
  2. 随意将它保存在 SqlLite 中作为 varchar aka 字符串。
  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);
于 2013-02-24T16:49:13.423 回答
2

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

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

于 2013-02-21T17:24:51.383 回答