Exemple #1
0
        /// <inheritdoc/>
        public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
        {
            if (value is Color)
            {
                var color = (Color)value;
                return(color.ToColor3());
            }
            if (value is Color4)
            {
                var color = (Color4)value;
                return(color.ToColor3());
            }

            var str = value as string;

            if (str != null)
            {
                // First try to convert using StringToRgba
                if (ColorExtensions.CanConvertStringToRgba(str))
                {
                    var colorValue = ColorExtensions.StringToRgba(str);
                    return(new Color3(colorValue));
                }
                // If we can't, use the default ConvertFromString method.
                return(ConvertFromString <Color3, float>(context, culture, value));
            }
            return(base.ConvertFrom(context, culture, value));
        }