Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WPF] Convertir une String en ImageSource
Définir la source d'une image, avec WPF (Windows Presentation Foundation), ne fonctionne pas si vous essayer d'assigner une chaîne de caractères à cette source.

En XAML, ceci fontionne:

        <Image Source="C:\logo.jpg" />

Mais coté code (C# bien évidemment Wink [;)]), ceci ne fonctionne pas:

       this.LogoImage.Source = @"C:\logo.jpg";

En effet, la propriété Source est de type ImageSource et vous ne pouvez pas caster votre chaîne de caractères en ImageSource, en faisant un simple:

       this.LogoImage.Source = (ImageSource) @"C:\logo.jpg";

Pour corriger cela, vous avez deux possibilités:
  • convertir votre chaîne de caractères en ImageSource
  • déclarer un objet de type BitmageImage et le spécifier comme source de votre Image
Voila deux exemples de code, illustrant ces deux techniques:
      
       1) this.LogoImage.Source = ((ImageSource)(System.ComponentModel.TypeDescriptor.GetConverter(typeof(ImageSource)).ConvertFromInvariantString(@"C:\logo.jpg")));

       2) this.LogoImage.Source = new BitmapImage(new Uri(@"C:\logo.jpg"));

Même si la première solution peut sembler la plus intéressante à mettre en oeuvre, elle n'est pas forcément toujours utilisable, comme par exemple dans le cas où l'accès à votre image nécessite une authentification:

       System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://moss/_layouts/images/logo.jpg");
        request.Credentials = new System.Net.NetworkCredentials("login", "password", "domain");

        System.Net.WebResponse response = request.GetResponse();
        System.IO.Stream ResponseStream = response.GetResponseStream();

        BitmapImage LogoImg = new BitmapImage();
        LogoImg.BeginInit();
        LogoImg.StreamSource = ResponseStream;
        LogoImg.DecodePixelHeight = 150;
        LogoImg.DecodePixelWidth = 150;
        LogoImg.EndInit();

        this.LogoImage.Source = LogoImg;


Voila pour un petit feedback Smile [:)]


A+



Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mardi 12 septembre 2006 10:39 par Thomas LEBRUN
Classé sous :

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01

- SharePoint Online: Script PowerShell pour supprimer une colonne dans tous les sites d’une collection par Blog Technique de Romelard Fabrice le 11-27-2018, 18:01