Создайте пользовательский рендерер для элемента управления изображением, как показано ниже,
public class CustomImageRenderer : ImageRenderer
{
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
try
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == "IsLoading")
{
var handler = Xamarin.Forms.Internals.Registrar.Registered.GetHandlerForObject<IImageSourceHandler>(Element.Source);
if (!Element.IsLoading && Control != null && Control?.Image == null && handler is ImageLoaderSourceHandler)
{
var imageLoader = Element.Source as UriImageSource;
var imgPath = imageLoader.Uri.OriginalString;
NSUrlSession session = NSUrlSession.SharedSession;
var task = session.CreateDataTask(new NSUrl(imgPath), (data, response, error) =>
{
InvokeOnMainThread(() =>
{
if (data != null)
{
Control.Image = UIImage.LoadFromData(data);
}
});
});
task.Resume();
}
}
}
catch (Exception ex)
{
//Handle exception
}
}
}