public ImageSource ProvideValue(IServiceProvider serviceProvider)
        {
            if (String.IsNullOrEmpty(Source))
            {
                IXmlLineInfoProvider lineInfoProvider = serviceProvider
                                                        .GetService(typeof(XmlLineInfoProvider)) as IXmlLineInfoProvider;
                IXmlLineInfo lineInfo;
                if (lineInfoProvider != null)
                {
                    lineInfo = lineInfoProvider.XmlLineInfo;
                }
                else
                {
                    lineInfo = new XmlLineInfo();
                }
                throw new XamlParseException("" + "La extensión requiere que la propiedad Source no sea vacía", lineInfo);
            }


            var    assembly     = GetType().GetTypeInfo().Assembly;
            string assemblyName = assembly.GetName().Name;
            var    image        = assemblyName + "." + Source;

            return(ImageSource.FromResource(image, assembly));
        }
Exemple #2
0
        public ImageSource ProvideValue(IServiceProvider serviceProvider)
        {
            if (String.IsNullOrEmpty(Source))
            {
                IXmlLineInfoProvider lineInfoProvider = serviceProvider.GetService(typeof(IXmlLineInfoProvider)) as IXmlLineInfoProvider;
                IXmlLineInfo         lineInfo         = (lineInfoProvider != null) ? lineInfoProvider.XmlLineInfo : new XmlLineInfo();
                throw new XamlParseException("ImageResourceExtension requires Source property to be set", lineInfo);
            }

            string assemblyName = GetType().GetTypeInfo().Assembly.GetName().Name;

            return(ImageSource.FromResource(assemblyName + "." + Source, typeof(ImageResourceExtension).GetTypeInfo().Assembly));
        }
Exemple #3
0
        /// <param name="serviceProvider">To be added.</param>
        /// <summary>For internal use by the XAML infrastructure.</summary>
        /// <returns>To be added.</returns>
        /// <remarks>To be added.</remarks>
        public object ProvideValue(IServiceProvider serviceProvider)
        {
            if (serviceProvider == null)
            {
                throw new ArgumentNullException("serviceProvider");
            }
            if (this.Key == null)
            {
                IXmlLineInfoProvider lineInfoProvider = serviceProvider.GetService(typeof(IXmlLineInfoProvider)) as IXmlLineInfoProvider;
                IXmlLineInfo         arg_40_0;
                if (lineInfoProvider == null)
                {
                    IXmlLineInfo xmlLineInfo2 = new XmlLineInfo();
                    arg_40_0 = xmlLineInfo2;
                }
                else
                {
                    arg_40_0 = lineInfoProvider.XmlLineInfo;
                }
                IXmlLineInfo lineInfo = arg_40_0;
                throw new XamlParseException("you must specify a key in {StaticResource}", lineInfo);
            }
            IProvideParentValuesPublic expr_62 = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideParentValuesPublic;

            if (expr_62 == null)
            {
                throw new ArgumentException();
            }
            IXmlLineInfoProvider xmlLineInfoProvider = serviceProvider.GetService(typeof(IXmlLineInfoProvider)) as IXmlLineInfoProvider;
            IXmlLineInfo         xmlLineInfo         = (xmlLineInfoProvider != null) ? xmlLineInfoProvider.XmlLineInfo : null;

            using (IEnumerator <object> enumerator = expr_62.ParentObjects.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    VisualElement ve = enumerator.Current as VisualElement;
                    object        res;
                    if (ve != null && ve.Resources != null && ve.Resources.TryGetValue(this.Key, out res))
                    {
                        object result = res;
                        return(result);
                    }
                }
            }
            if (Application.Current != null && Application.Current.Resources != null && Application.Current.Resources.ContainsKey(this.Key))
            {
                return(Application.Current.Resources[this.Key]);
            }

            return(null);
        }
Exemple #4
0
        public ImageSource ProvideValue(IServiceProvider serviceProvider)
        {
            if (String.IsNullOrEmpty(Source))
            {
                //IXmlLineInfoProvider:特定のエラーが検出されたことを示す行や文字の情報を提供するオブジェクト
                IXmlLineInfoProvider lineInfoProvider = serviceProvider.GetService(typeof(IXmlLineInfoProvider)) as IXmlLineInfoProvider;
                IXmlLineInfo         lineInfo         = (lineInfoProvider != null) ? lineInfoProvider.XmlLineInfo : new XmlLineInfo();
                throw new XamlParseException("ImageResourceExtensionはSourceプロパティを設定する必要があります。", lineInfo);
            }

            string assemblyName = GetType().GetTypeInfo().Assembly.GetName().Name;
            var    imageSource  = ImageSource.FromResource(assemblyName + "." + Source, typeof(ImageResourceExtension).GetTypeInfo().Assembly);

            return(imageSource);
        }
Exemple #5
0
        public void XamlServiceProviderIXmlLineInfoProvider()
        {
            tlog.Debug(tag, $"XamlServiceProviderIXmlLineInfoProvider START");

            try
            {
                IXmlLineInfoProvider i1 = x1.IXmlLineInfoProvider;
                x1.IXmlLineInfoProvider = i1;
            }
            catch (Exception e)
            {
                Tizen.Log.Error(tag, "Caught Exception" + e.ToString());
                Assert.Fail("Caught Exception" + e.ToString());
            }

            tlog.Debug(tag, $"XamlServiceProviderIXmlLineInfoProvider END (OK)");
            Assert.Pass("XamlServiceProviderIXmlLineInfoProvider");
        }
        private object Parse(string match, ref string remaining, IServiceProvider serviceProvider)
        {
            IXamlTypeResolver typeResolver = serviceProvider.GetService(typeof(IXamlTypeResolver)) as IXamlTypeResolver;

            if (match == "Binding")
            {
                this.markupExtension = new BindingExtension();
            }
            else if (match == "TemplateBinding")
            {
                this.markupExtension = new TemplateBindingExtension();
            }
            else if (match == "StaticResource")
            {
                this.markupExtension = new StaticResourceExtension();
            }
            else if (match == "DynamicResource")
            {
                this.markupExtension = new DynamicResourceExtension();
            }
            else
            {
                if (typeResolver == null)
                {
                    return(null);
                }
                Type type;
                if (!typeResolver.TryResolve(match + "Extension", out type) && !typeResolver.TryResolve(match, out type))
                {
                    IXmlLineInfoProvider lineInfoProvider = serviceProvider.GetService(typeof(IXmlLineInfoProvider)) as IXmlLineInfoProvider;
                    IXmlLineInfo         arg_BF_0;
                    if (lineInfoProvider == null)
                    {
                        IXmlLineInfo xmlLineInfo = new XmlLineInfo();
                        arg_BF_0 = xmlLineInfo;
                    }
                    else
                    {
                        arg_BF_0 = lineInfoProvider.XmlLineInfo;
                    }
                    IXmlLineInfo lineInfo = arg_BF_0;
                    throw new XamlParseException(string.Format("MarkupExtension not found for {0}", new object[]
                    {
                        match
                    }), lineInfo);
                }
                this.markupExtension = (Activator.CreateInstance(type) as IMarkupExtension);
            }
            if (this.markupExtension == null)
            {
                IXmlLineInfoProvider lineInfoProvider2 = serviceProvider.GetService(typeof(IXmlLineInfoProvider)) as IXmlLineInfoProvider;
                IXmlLineInfo         arg_123_0;
                if (lineInfoProvider2 == null)
                {
                    IXmlLineInfo xmlLineInfo = new XmlLineInfo();
                    arg_123_0 = xmlLineInfo;
                }
                else
                {
                    arg_123_0 = lineInfoProvider2.XmlLineInfo;
                }
                IXmlLineInfo lineInfo2 = arg_123_0;
                throw new XamlParseException(string.Format("Missing public default constructor for MarkupExtension {0}", new object[]
                {
                    match
                }), lineInfo2);
            }
            if (remaining == "}")
            {
                return(this.markupExtension);
            }
            char   next;
            string piece;

            while ((piece = GetNextPiece(ref remaining, out next)) != null)
            {
                HandleProperty(piece, serviceProvider, ref remaining, next != '=');
            }
            return(this.markupExtension);
        }