Fabulous.Avalonia
Fabulous.Avalonia copied to clipboard
Added a proof-of-concept for async loaded images from the web
using https://github.com/AvaloniaUtils/AsyncImageLoader.Avalonia
If you want this as an extension to Fabulous.Avalonia, I can try to encapsulate it into a separate project similar to the existing Fabulous.Avalonia.ItemsRepeater
Seems like a good control to use. For this non official control we have normally 2 options.
We encourage people to create its own Fabulous.Avalonia control wrapper in their individual GitHub profile like I tried to do with AvaloniaEdit using a naming convention like Fabulous.Avalonia.AvaloniaEdit
We can host it in the Fabulous GitHub organization like we have done for Fabulous.MauiControl.Maps in the past and give you maintainer permissions so we can help/assist maintaining, releasing etc. if it is necessary.
@edgarfgp I prefer the second option - easier to find for everyone and less work for me :)
I'd also love your help getting the implementation right and the API consistent with that of Fabulous Avalonia. I don't understand the difference between Fabulous' different Attributes.define*
helpers yet. Or how to decide which options to expose in a builder vs. in extension methods - because not all existing ones are intuitive to me.
Let me know how you'd like to proceed. If you set up a GitHub repo, I'm happy to convert this into a library with a sample project, and either create a PR or push to it.
I'd also like your feedback on the naming. Is AsyncImage
a good widget name? Does it conflict with a part of the ecosystem I don't know about? I derived it from the name of AsyncImageLoader.Avalonia, but didn't to put the -Loader suffix in the name - because the widget effectively renders an image, not a loader.
And what would be a good name and default namespace for the project? Note that the library also features the AdvancedImage
control and the ImageBrushLoader
attached property, both of which I haven't wrapped in my sample.