Iam使用SQLite Datatabase
存储在C# and XAML
中开发的Windows 8 Store App
的数据。
现在,我正在寻找一种简单的方法来存储Color
对象,该对象应在此数据库中用作XAML Color
(Windows.UI.Color)。所以我认为我必须在这种情况下将Color
对象转换为字符串或整数!?
我可以用ToString()
方法将Color
转换为字符串表示,但我如何将其转换回?
解决方案是将ARGB字节值存储在数据库中,然后可以使用Color.FromArgb(a, r, g, b)
方法从这些存储的字节值中获取颜色。
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.color.fromargb
我正在尝试以下答案来帮助您。
- 假设您希望存储ColorObject.ToString()值,例如#659EBCF5
- 请随意将其保存在SqLite中,作为varchar或字符串
- 当你需要它时,从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);