Why is there a leading "#FF" in hexadecimal color values?

DenaliHardtail picture DenaliHardtail · Sep 28, 2009 · Viewed 9.2k times · Source

I'm using Expression Blend 3 and am writing some of the XAML by hand, specifically the color values of controls.

I have a list of RGB colors already converted to hexadecimal. I just need to insert the hex value into my XAML.

Initially, I pasted the hex value from an email into the appropriate properties. Before I could finish, Blend started having a fit, underlining the color property with a squiggle and a tooltip telling me "Token is not valid." After some research, I found placing a pound sign ("#") in front of the hex value resolved this issue.

In the process of researching this problem, I started changing colors via the color picker in Blend. I quickly found the values Blend was inserting not only started with the pound sign, but also "FF". The values I was pasting were valid colors in a valid hex format. But when entering the RGB values into Blend and letting Blend insert the hex value, I noticed all my colors were prefixed with "#FF". Removing the #, as I already pointed out, generated errors, but removing the "FF" seemed to have no effect at all.

In the world of hexadecimal colors, is the color #5A7F39 really the same as #FF5A7F39? Why the FF? They are two different hex values, right? But they appear identical onscreen. Why the difference?

Answer

Pierre Bourdon picture Pierre Bourdon · Sep 28, 2009

That may be the alpha component of the color, which represents the opacity (00 -> transparent, FF -> opaque).

MSDN seems to agree with this: Color

16-bit hexadecimal, alpha -- #AARRGGBB