I think there might be a couple of typos in the original code. This works, though...
public SolidColorBrush GetColor(string ColorCode)
{
return (SolidColorBrush)XamlReader.Load(
"<SolidColorBrush xmlns=\"http://schemas." +
"microsoft.com/winfx/2006/xaml/presentation\" Color=\"" +
ColorCode + "\" />");
}
Alternatively you could do something like this rather than use the XamlReader...
public static SolidColorBrush GetColor(string s)
{
int hashOffset = s.Substring(0, 1) == "#" ? 1 : 0;
byte a = Convert.ToByte(s.Substring(0 + hashOffset, 2), 16);
byte r = Convert.ToByte(s.Substring(2 + hashOffset, 2), 16);
byte g = Convert.ToByte(s.Substring(4 + hashOffset, 2), 16);
byte b = Convert.ToByte(s.Substring(6 + hashOffset, 2), 16);
return new SolidColorBrush(Color.FromArgb(a, r, g, b));
}
Laurent Duveau has a nice implementation with an extension method
here[
^].