В приложениях Windows 8 для хранения цветов используется модель - RGBA (Red, Green, Blue, Alpha). Эта модель (цветовое пространство) известна всем со школы.
В C# байты сначала идут - Alpha - Red - Green - Blue. Для каждого значения по 2 байта.
Пример #FF000000 - Черный цвет, #FFFF0000 - Красный цвет.
Для тех, кто не знает, что такое Alpha - оно отвечает за прозрачность картинки, то есть, если у вас например RGBA = #FF000000 , здесь Alpha = 255, то есть картинка полностью непрозрачна, если Alpha = 0, то картинка полностью прозрачна.
Итак мне понадобилось сделать для моего приложения Windows Store простенький конвертер из Hex Строкового значения в объект типа SolidColorBrush. Преобразует строки типа - #FFFFFFFF. Проверок на длину строки нету.
public static class HexToColorConverter
{
public static SolidColorBrush GetColorFromHex(string hexColor)
{
hexColor = hexColor.Replace("#", ""); //удаляем решетку
byte a = byte.Parse(hexColor.Substring(0, 2), System.Globalization.NumberStyles.HexNumber); //получаем alpha
byte r = byte.Parse(hexColor.Substring(2, 2), System.Globalization.NumberStyles.HexNumber); //получаем красный
byte g = byte.Parse(hexColor.Substring(4, 2), System.Globalization.NumberStyles.HexNumber); //получаем зеленый
byte b = byte.Parse(hexColor.Substring(6, 2), System.Globalization.NumberStyles.HexNumber); //получаем синий
return new SolidColorBrush(Color.FromArgb(a, r, g, b));
}
}