Je continue avec l’affichage des Images et je vous propose cette fois de voir les implémentations possibles pour récupérer des images depuis le Web avec le protocole http.
L’implémentation classique :
public static void GethttpImage1(string urlImage, Action<BitmapImage> action)
{
var request = (HttpWebRequest)WebRequest.Create(urlImage);
request.BeginGetResponse(result =>
{
using (var sr = request.EndGetResponse(result))
{
Deployment.Current.Dispatcher.BeginInvoke(() =>
{
var image = new BitmapImage();
image.SetSource(sr.GetResponseStream());
if (action != null)
action(image);
sr.Close();
});
}
}
}
urlImage contient l’url de l’image sous forme d’une châine de caractère : exemple : http://dev.bratched.fr/download/testimage1.png
La méthode utilise un WebRequest et lit la réponse de la requête sous forme d’un stream avec le request.EndGetResponse.
La partie
Deployment.Current.Dispatcher.BeginInvoke(() =>
est très importante car elle va permettre d’utiliser le BitmapImage dans le Thread Principal même lorsque la méthode est appelée dans un Thread tournant en tâche de fond.