43 lines
1.2 KiB
C#
43 lines
1.2 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Reflection;
|
|
using Xamarin.Forms;
|
|
using Xamarin.Forms.Xaml;
|
|
|
|
namespace Aurora.Design.Extensions
|
|
{
|
|
[ContentProperty(nameof(Source))]
|
|
public class ImageResourceExtension : IMarkupExtension
|
|
{
|
|
public string Source { get; set; }
|
|
|
|
public object ProvideValue(IServiceProvider serviceProvider)
|
|
{
|
|
if (Source == null)
|
|
{
|
|
return null;
|
|
}
|
|
Assembly[] referencedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
|
|
var gtkAsm = referencedAssemblies.FirstOrDefault((e) =>
|
|
{
|
|
return e.FullName.Contains("Aurora.gtk");
|
|
});
|
|
|
|
foreach (var res in gtkAsm.GetManifestResourceNames())
|
|
{
|
|
Console.WriteLine("found resource: " + res);
|
|
}
|
|
|
|
if (gtkAsm == null && gtkAsm is Assembly)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
// Do your translation lookup here, using whatever method you require
|
|
var imageSource = ImageSource.FromResource(Source, gtkAsm);
|
|
|
|
return imageSource;
|
|
}
|
|
}
|
|
}
|