public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { if (value is string s) { if (targetType == typeof(UniColor)) { return(UniColor.Parse(s)); } else if (targetType == typeof(System.Windows.Media.Color)) { return(UniColor.Parse(s).GetWPFColor()); } else { throw new NotSupportedException(); } } else { throw new NotSupportedException(); } }
public override ValidationResult Validate(object value, CultureInfo cultureInfo) { if (ValidateSatVal || ValidateHue) { if (!double.TryParse(value.ToString(), NumberStyles.Any, cultureInfo, out double result)) { return(new ValidationResult(false, "Does Not Parse As Double")); } else if (ValidateSatVal && (result < 0d || result > 1)) { return(new ValidationResult(false, "Is Not Within Range 0 to 1")); } else if (ValidateHue && (result < 0d || result > 360d)) { return(new ValidationResult(false, "Is Not Within Range 0 to 360")); } } else if (ValidateWebHex) { try { UniColor.Parse(value.ToString()); } catch { return(new ValidationResult(false, "Is Not Parseable Color")); } } else { if (!byte.TryParse(value.ToString(), NumberStyles.Any, cultureInfo, out _)) { return(new ValidationResult(false, "Does Not Parse As Byte")); } } return(ValidationResult.ValidResult); }