1: public class ColorConverter : IValueConverter
2: { 3:
4: #region IValueConverter Members
5:
6: //[ValueConversion(typeof(SolidColorBrush), typeof(string))]
7: public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
8: { 9: string val = value.ToString();
10: val = val.Replace("#", ""); 11:
12: byte a = System.Convert.ToByte("ff", 16); 13: byte pos = 0;
14: if (val.Length == 8)
15: { 16: a = System.Convert.ToByte(val.Substring(pos, 2), 16);
17: pos = 2;
18: }
19:
20: byte r = System.Convert.ToByte(val.Substring(pos, 2), 16);
21: pos += 2;
22:
23: byte g = System.Convert.ToByte(val.Substring(pos, 2), 16);
24: pos += 2;
25:
26: byte b = System.Convert.ToByte(val.Substring(pos, 2), 16);
27:
28: Color col = Color.FromArgb(a, r, g, b);
29:
30: return new SolidColorBrush(col);
31: }
32:
33: public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
34: { 35: SolidColorBrush val = value as SolidColorBrush;
36: return "#" + val.Color.A.ToString() + val.Color.R.ToString() + val.Color.G.ToString() + val.Color.B.ToString();
37: }
38:
39: #endregion
40: }