private static object Convert(object value) { if (value is double) { return(ColorExtensions.DoubleToByteComponent((double)value)); } if (value is byte) { return(ColorExtensions.ByteToDoubleComponent((byte)value)); } var s = value as string; if (s != null) { byte b; if (byte.TryParse(s, out b)) { return(ColorExtensions.ByteToDoubleComponent(b)); } } return(value); }