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)); }
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)); }
/// <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); }
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); }
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); }