Silverlight – Get Color from Hex

What if you want to get a Color from its hexa value (#FFBBCC88) ?

Unfortunately Silverlight do not have the ColorTranslator class which allows you to do ColorTranslator.FromHtml("#FF1133") in ASP.NET.

What we have is the Color.FromArgb() method which takes 4 parameters (alpha, red, blue and green channels as bytes).
So here is a small method you could write:

public static SolidColorBrush GetColorFromHexa(string hexaColor)
{
    return new SolidColorBrush(
        Color.FromArgb(
            Convert.ToByte(hexaColor.Substring(1, 2), 16),
            Convert.ToByte(hexaColor.Substring(3, 2), 16),
            Convert.ToByte(hexaColor.Substring(5, 2), 16),
            Convert.ToByte(hexaColor.Substring(7, 2), 16)
        )
    );
}

Let’s say I want to set the main Canvas Background (LayoutRoot) from a TextBox (txtColorHexa):

LayoutRoot.Background = GetColorFromHexa(txtColorHexa.Text);


Now add the following Extension method:

public static SolidColorBrush ToSolidColorBrush(this string hexaColor)
{
    return GetColorFromHexa(hexaColor);
}

And you get this nice syntax:

LayoutRoot.Background = txtColorHexa.Text.ToSolidColorBrush();

1 Comment

  • Very nice. I like that method. Too bad they could not integrate something simple like that into the framework to make things easier on us, lol.

    Nice work.

Comments have been disabled for this content.