Changer la source de l’image dans le code derrière – Wpf

J’ai besoin de définir dynamicment la source de l’image, veuillez noter que mon image est quelque part sur le réseau, voici mon code

BitmapImage logo = new BitmapImage(); logo.BeginInit(); logo.UriSource = new Uri(@"pack://application:,,,\\myserver\\folder1\\Customer Data\\sample.png"); logo.EndInit(); // Getting the exception here ImageViewer1.Source = logo; 

Exception:

Le préfixe URI n’est pas reconnu

Vous avez juste besoin d’une ligne:

 ImageViewer1.Source = new BitmapImage(new Uri(@"\myserver\folder1\Customer Data\sample.png")); 

Aucune des solutions ci-dessus n’a fonctionné pour moi. Mais cela a:

 myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative)); 

La syntaxe de pack que vous utilisez ici concerne une image contenue en tant que ressource dans votre application, et non un fichier volé dans le système de fichiers.

Vous voulez simplement passer le chemin réel à UriSource:

 logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png"); 

Aucune des méthodes ne fonctionnait pour moi car je devais extraire l’image d’un dossier au lieu de l’append à l’application. Le code ci-dessous a fonctionné:

  TestImage.Source = GetImage("/Content/Images/test.png") private static BitmapImage GetImage(ssortingng imageUri) { var bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.UriSource = new Uri("pack://siteoforigin:,,,/" + imageUri, UriKind.RelativeOrAbsolute); bitmapImage.EndInit(); return bitmapImage; } 

Vous avez tous tort! Pourquoi? Parce que tout ce dont vous avez besoin, c’est que ce code fonctionne:

(Image View) / C # Img is: votre boîte d’image

Conservez-le tel quel, sans modification (“ms-appx: ///) ceci est un code et non le nom de votre application. Images est votre dossier dans votre projet, vous pouvez le changer. Dog.png est votre fichier dans votre dossier, ainsi faire mon dossier ‘Images’ et mon fichier ‘dog.png’ Donc l’uri est: “ms-appx: ///Images/dog.png” et mon code:


 private void Button_Click(object sender, RoutedEventArgs e) { img.Source = new BitmapImage(new Uri("ms-appx:///Images/dog.png")); }