charri / Font-Awesome-WPF

FontAwesome controls for WPF+UWP
MIT License
530 stars 147 forks source link

ImageSourceConverter not usable as MarkupExtension ? #27

Open DesselBane opened 8 years ago

DesselBane commented 8 years ago

Hi @charri Maybe I used it wrong but to my understanding the FontAwesome.WPF.Converters.ImageSourceConverter which inherits from MarkupExtension cannot be used as such since its ProvideValue Function returns a this refrence.

Would it be possible to adapt it a little bit so it would be usable as a MarkupExtension ?

Right now I use this as a MarkupExtension :

` public class ImageSourceFromFont : MarkupExtension { private FontAwesomeIcon _icon; private Brush _brush = new SolidColorBrush(Colors.Black);

    public FontAwesomeIcon Icon
    {
        get { return _icon; }
        set { _icon = value; }
    }

    public Brush IconBrush
    {
        get { return _brush; }
        set { _brush = value; }
    }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        return ImageAwesome.CreateImageSource(Icon, IconBrush);
    }

`

charri commented 8 years ago

That is strange, I based the implementation of the ImageSourceConverter on this: http://stackoverflow.com/questions/7445119/improved-ivalueconverter-markupextension-or-dependencyobject

And I do see the brush change if I pass it as a parameter :/

I'll have a look over the code and try to give feedback by the end of the week.

DesselBane commented 8 years ago

Ok well I guess its used in a different way then I expected. Like this you can use the Converter without declaring it as a Resource somewhere. What I though it would be used like was this:

Icon="{MarkupExtensions:ImageSourceFromFont FontIcon={StaticResource FI_Document} }"

So that you can set a Property which is an ImageSource with it directly (since there is no Binding) Maybe you could add such a MarkupExtension ?