天天看点

[Silverlight]16进制颜色转ARGB及Color转Int32

16进制色字符串转ARGB

做Web的都喜欢用16进制字符串标识颜色,比如“#F5F5F5”这类的,自然这个到了Silverlight/WPF中就要用ARGB表示:“#FFF5F5F5”(前两位标识Alpha,即透明度)。这在XAML中没有任何问题,可是如果我们想在代码中设置颜色呢,或者是从XML中读取的相关值呢?

<a href="http://images.cnblogs.com/cnblogs_com/024hi/WindowsLiveWriter/Silverlight16ARGBColorInt32_146C2/image_2.png"></a>

必然会报错嘛,至少我是不知道SL或者WPF有没有公开这个Converter,反正俺是无能为力

这里提供一个代码片段,帮助我们将16进制字符串转为ARGB色

自然就没问题了

Color转Int32

看到这里你可能要问了,Color转int有啥用啊?其实如果你在用一些现有的图像库的时候,它们经常将Color表现为一个int值。在这种情况下,ARGB值是通过其AARRGGBB的byte的顺序用32位int表现的。这里我们可以做如下转换:

<a href="http://11011.net/software/vspaste"></a>

以下是这两个方法的一个综合应用:

猜猜MessageBox Show出来的值是什么?

OK,散会:)

本文转自紫色永恒51CTO博客,原文链接: http://www.cnblogs.com/024hi/archive/2009/09/28/1576040.html,如需转载请自行联系原作者