Quelques images ont été ajoutées à ma solution. Pour le moment, il se trouve dans le dossier images\flowers\rose.png de l'explorateur de solutions. Je veux un moyen de charger dynamiquement cette image dans mon contrôle d'image.
Mon approche actuelle consiste à créer le type 'contenu' et à utiliser les propriétés 'copier toujours'. Ensuite, je donnerais un chemin relatif à l'image comme ci-dessous.
Image2.Source = new BitmapImage(new Uri("/images/flowers/Customswipe_b.png", UriKind.Relative));
Existe-t-il un moyen de le charger depuis la ressource sans la copier sur le système cible.
Ce qui suit fonctionne très bien pour moi:
image.Source = new BitmapImage(new Uri("pack://application:,,,/YourAssemblyName;component/Resources/someimage.png", UriKind.Absolute));
Aussi, vous devriez changer le Build Action
de votre image de None
à Resource
.
Vous pouvez ouvrir l'éditeur de ressources (Explorateur de solutions, cliquez sur Resources.resx) et ajouter l'image à cet endroit. Ensuite, vous pouvez simplement y accéder en tant que Bitmap
avec Properties.Resources.ImageId
http://msdn.Microsoft.com/en-us/library/3bka19x4(v=vs.100).aspx
Vous utilisez ceci:
Image2.Source = new Bitmap(
System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceStream("MyProject.Resources.myimage.png"));
Ou
Image2.Source = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage);
Je recommande le second.
J'ai eu quelques problèmes pour trouver la syntaxe exacte pour l'URI, voyez donc ci-dessous plus de détails:
Si votre image (myImage.png
) se trouve dans un sous-dossier "images" (à partir du répertoire racine), la syntaxe exacte est la suivante:
image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/myImage.png", UriKind.Absolute));
Si votre image se trouve dans le sous-dossier images/icon/
(à partir du répertoire racine), la syntaxe est la suivante:
image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute));
"pack://application:,,,
ne change pas.Pour plus d'informations: voir ici .
La manière dont vous ajoutez une image, puis changez son "action de génération" en "ressources" fera également l'affaire, mais comme vous avez demandé l'ajout et le chargement à partir de ressources, l'approche serait différente pour accomplir la même tâche. Je voudrais vous fournir un lien pour lire certains articles de MSDN.