我需要将
WPF应用程序中使用的颜色序列化到数据库.我想使用sRGB的值,因为他们比较熟悉我们过去几年在Web开发中花费的时间.
如何从System.Windows.Media.Color对象获取ARGB字符串(如#FFFFFFFF)?
更新:我被MSDN上的文档误导了.正如@Kris在下面所述,ToString()方法的文档是不正确的.虽然它表示ToString()“使用ScRGB通道创建颜色的字符串表示”,但如果使用FromARGB()方法创建了颜色,它将实际返回ARGB十六进制格式的字符串.这是一个无证的功能,我想.
如果您使用Color.FromRgb或Color.FromArgb而不是FromScRgb创建颜色,则应该从ToString获取十六进制字符串结果.
如果你想手动做
string.Format("#{0:X2}{1:X2}{2:X2}{3:X2}",c.A,c.R,c.G,c.B);
你可以使用int.Parse(,NumberStyles.HexNumber)去另一种方式.
注意sRGB和scRGB指的是不同的颜色空间,确保使用你想要的颜色空间.