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.