Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Xamarin.Forms custom markup extension because there is no built-in TypeConverter for Images embedded as resources
using System;
using Xamarin.Forms.Xaml;
using Xamarin.Forms;
namespace WorkingWithImages
// You exclude the 'Extension' suffix when using in Xaml markup
[ContentProperty ("Source")]
public class ImageResourceExtension : IMarkupExtension
public string Source { get; set; }
public object ProvideValue (IServiceProvider serviceProvider)
if (Source == null)
return null;
// Do your translation lookup here, using whatever method you require
var imageSource = ImageSource.FromResource(Source);
return imageSource;
<?xml version="1.0" encoding="UTF-8" ?>
<OnPlatform x:TypeArguments="Thickness">
<OnPlatform.iOS>0, 20, 0, 0</OnPlatform.iOS>
<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<Label Text="Image Resource Xaml" />
<!-- uses a custom Extension defined in this project for now -->
<Image Source="{local:ImageResource WorkingWithImages.beach.jpg}" />
<Label Text="WorkingWithImages.beach.jpg embedded resource" />
Copy link

eltiare commented Oct 19, 2017

I can't get this to work on Android or iOS, either. :(

Copy link

this code just doesn't work for me. I did not get a breakpoint hit neither in the get/set of the property nor in the ProvideValue method

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment