我需要将 WPF 应用程序中使用的颜色序列化到数据库。我想使用 sRGB 值,因为我们这些过去几年从事 Web 开发的人更熟悉它们。
如何从 System.Windows.Media.Color 对象获取 ARGB 字符串(如 #FFFFFFFF)?
更新:我被 MSDN 上的文档误导了。正如 @Kris 下面指出的,ToString()
方法的文档不正确。尽管它说 ToString()“使用 ScRGB channel 创建颜色的字符串表示形式”,但如果使用 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 指的是不同的颜色空间,请确保您使用您想要的颜色空间。
关于wpf - 如何将 System.Windows.Media.Color 对象序列化为 sRGB 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3315088/