J'ai besoin de définir dynamiquement la source de l'image, veuillez noter que mon image se trouve 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 fait:
myImage.Source = new BitmapImage(new Uri(@"/Images/foo.png", UriKind.Relative));
La syntaxe du pack que vous utilisez ici est pour une image qui est contenue en tant que ressource dans votre application, pas pour un fichier en vrac dans le système de fichiers.
Vous voulez simplement passer le chemin réel à l'UriSource:
logo.UriSource = new Uri(@"\\myserver\folder1\Customer Data\sample.png");
Aucune des méthodes n'a fonctionné pour moi car j'avais besoin de retirer l'image d'un dossier au lieu de l'ajouter à l'application. Le code ci-dessous a fonctionné:
TestImage.Source = GetImage("/Content/Images/test.png")
private static BitmapImage GetImage(string imageUri)
{
var bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.UriSource = new Uri("pack://siteoforigin:,,,/" + imageUri, UriKind.RelativeOrAbsolute);
bitmapImage.EndInit();
return bitmapImage;
}