ressources image WPF et Visual Studio 2010 éditeur de ressources
-
26-09-2019 - |
Question
Ma motivation pour cette question est vraiment juste de spécifier une image à utiliser dans un contrôle utilisateur via une propriété de dépendance pour ImageSource. Je suis frappé certains points de douleur impliquant la gestion, l'accès et les tests unitaires pour cela.
- L'éditeur de ressources un bon outil à utiliser pour maintenir des images pour l'application?
- Quelle est la meilleure façon de traduire le Bitmap de l'éditeur à un ImageSource?
- Comment puis-je récupérer la ressource Nom du fichier de l'éditeur?
La solution
Non, l'éditeur de ressources n'est pas un bon outil pour cela.
Dans une application WPF la meilleure façon est de mettre toutes vos images dans un « Images » répertoire et marquer chacun comme une « ressource ». Ensuite, vous pouvez les référencer directement dans les contrôles d'image et ailleurs.
Voici les étapes précises:
- cultures et autres ajuster vos images à l'aide de votre programme d'édition bitmap favori (Paint.NET, Photoshop, etc.)
- Enregistrer les fichiers en .png (ou .jpg ou .gif si vous préférez)
- Créer un « Images » dossier dans votre solution Visual Studio (ou plusieurs dossiers, mais vous voulez organiser)
- Faites glisser les images de votre disque dur dans votre « Images » (ou dossier clic droit sur le projet, sélectionnez Nouveau -> un élément existant et sélectionnez les images)
Maintenant, vous pouvez référencer vos images facilement en XAML:
<Image Source="Images/MyImage.png" />
Ou dans le code:
var source = (BitmapSource)Application.LoadComponent(
new Uri("Images/MyImage.png", UriKind.Relative));
Vous pouvez également référencer des images dans des ensembles externes:
<Image Source="ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png" />
Ce qui dans le code serait:
var source = (BitmapSource)Application.LoadComponent(
new Uri("ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png",
UriKind.Relative));