/// <summary>
        /// Determines if the given value represents a valid state of this property.
        /// </summary>
        /// <param name="value">The state that should be used.</param>
        /// <returns>True if the state is valid, otherwise false.</returns>
        protected override Boolean IsValid(CSSValue value)
        {
            if (value is CSSValueList)
            {
                var values = (CSSValueList)value;
                var images = new List<CSSImageValue>();

                for (int i = 0; i < values.Length; i++)
                {
                    var image = values[i].AsImage();

                    if (image == null || (++i < values.Length && values[i] != CSSValue.Separator))
                        return false;

                    images.Add(image);
                }

                _images = images;
            }
            else if (value != CSSValue.Inherit)
            {
                var image = value.AsImage();

                if (image == null)
                    return false;

                _images.Clear();
                _images.Add(image);
            }

            return true;
        }
        /// <summary>
        /// Determines if the given value represents a valid state of this property.
        /// </summary>
        /// <param name="value">The state that should be used.</param>
        /// <returns>True if the state is valid, otherwise false.</returns>
        protected override Boolean IsValid(CSSValue value)
        {
            var image = value.AsImage();

            if (image != null)
                _image = image;
            else if (value != CSSValue.Inherit)
                return false;

            return true;
        }
        protected override Boolean IsValid(CSSValue value)
        {
            var image = value.AsImage();

            if (image != null)
            {
                _image = image;
            }
            else if (value != CSSValue.Inherit)
            {
                return(false);
            }

            return(true);
        }
        protected override Boolean IsValid(CSSValue value)
        {
            if (value is CSSValueList)
            {
                var values = (CSSValueList)value;
                var images = new List <CSSImageValue>();

                for (int i = 0; i < values.Length; i++)
                {
                    var image = values[i].AsImage();

                    if (image == null || (++i < values.Length && values[i] != CSSValue.Separator))
                    {
                        return(false);
                    }

                    images.Add(image);
                }

                _images = images;
            }
            else if (value != CSSValue.Inherit)
            {
                var image = value.AsImage();

                if (image == null)
                {
                    return(false);
                }

                _images.Clear();
                _images.Add(image);
            }

            return(true);
        }