A.T*_*.T. 3 c# colors argb winrt-xaml
这是我在数据库中的整数颜色:"8689404".
我把它改成颜色如下:
Color = ColorHelper.FromArgb(255,
byte.Parse(Event.LABELCOLOR.Value.ToString("X8").Substring(6, 2), NumberStyles.HexNumber),
byte.Parse(Event.LABELCOLOR.Value.ToString("X8").Substring(4, 2), NumberStyles.HexNumber),
byte.Parse(Event.LABELCOLOR.Value.ToString("X8").Substring(2, 2), NumberStyles.HexNumber))
Run Code Online (Sandbox Code Playgroud)
这给了我颜色字符串"#FFFC9684"
现在问题是我无法将此颜色字符串解析回整数,以便我可以将其保存在数据库中.我现在的是:
byte A = byte.Parse(labelcolor.Color.TrimStart('#').Substring(0, 2), System.Globalization.NumberStyles.HexNumber);
byte B = byte.Parse(labelcolor.Color.TrimStart('#').Substring(6, 2), System.Globalization.NumberStyles.HexNumber);
byte G = byte.Parse(labelcolor.Color.TrimStart('#').Substring(4, 2), System.Globalization.NumberStyles.HexNumber);
byte R = byte.Parse(labelcolor.Color.TrimStart('#').Substring(2, 2), System.Globalization.NumberStyles.HexNumber);
Run Code Online (Sandbox Code Playgroud)
这给了我:
A = 255
B = 132
G = 150
R = 252
Run Code Online (Sandbox Code Playgroud)
这些值是正确的,但我无法将它们与"8689404"进行比较
根据我的发现:
B = 132 = 84
G = 150 = 96
R = 252 = FC
A = 255 = FF
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的,我怎么能有这个颜色字符串的整数.我在WinRT工作.任何帮助!!! 提前致谢
这将产生您想要的正确小数值:
int decValue = int.Parse("8496FC", System.Globalization.NumberStyles.HexNumber);
Run Code Online (Sandbox Code Playgroud)
如您所见,用于生成十进制值的十六进制值由以下颜色组件组成:
B(84)G(96)R(FC)
随着A组件的下降.
这可以通过使用substring完整的十六进制颜色来计算,如下所示:
string colour = labelcolor.Color.TrimStart('#');
string R = colour.Substring(2, 2);
string G = colour.Substring(4, 2);
string B = colour.Substring(6, 2);
Run Code Online (Sandbox Code Playgroud)
你可以这样使用:
int decValue = int.Parse(B + G + R, System.Globalization.NumberStyles.HexNumber);
//decValue = 8689404
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10224 次 |
| 最近记录: |