private static IValueProvider GetSource(IValueProvider source)
        {
            switch (source)
            {
            case LiteralValue literal:
                switch (literal.Value)
                {
                case string str:
                    return(new LiteralValue(FromString(str)));

                case ImageSource src:
                    return(new LiteralValue(src));

                default:
                    return(LiteralValue.Null);
                }

            case null:
                return(LiteralValue.Null);

            default:
                return(source.Wrap(new ImageSourceValueConverter()));
            }
        }