Materiale Fotografico WPF e editor di risorse visual Studio 2010
-
26-09-2019 - |
Domanda
La mia motivazione per questa domanda è in realtà solo per specificare un'immagine da utilizzare in un controllo utente tramite una proprietà di dipendenza per ImageSource. Sto colpendo alcuni punti critici che coinvolgono la gestione, l'accesso, e l'unità di test per questo.
- è l'editor di risorse un buon strumento da utilizzare per mantenere le immagini per l'applicazione?
- Qual è il modo migliore per tradurre il bitmap dall'editor a un ImageSource?
- Come posso afferrare la risorsa Nome file dall'editor?
Soluzione
No, l'editor di risorse non è uno strumento buono per questo.
In un'applicazione WPF il modo migliore è quello di mettere tutte le immagini in una directory di "Immagini" e contrassegnare ciascuno come una "risorsa". Quindi è possibile fare riferimento direttamente nei controlli immagine e altrove.
Ecco i passaggi precisi:
- Ritaglia e altrimenti regolare le immagini utilizzando la bitmap preferito modifica del programma (Paint.NET, Photoshop, etc)
- salvarli come file .png (o .jpg o .gif, se si preferisce)
- Creare una cartella "Immagini" dentro la soluzione di Visual Studio (o cartelle multiple, comunque lo si voglia organizzare)
- Trascina le immagini dal disco rigido nella cartella "Immagini" (oppure fare clic destro del progetto, selezionare Nuovo -> elemento esistente e selezionare le immagini)
Ora è possibile fare riferimento le immagini con facilità in XAML:
<Image Source="Images/MyImage.png" />
o nel codice:
var source = (BitmapSource)Application.LoadComponent(
new Uri("Images/MyImage.png", UriKind.Relative));
Si può anche fare riferimento le immagini in assembly esterni:
<Image Source="ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png" />
Che in codice sarebbe:
var source = (BitmapSource)Application.LoadComponent(
new Uri("ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png",
UriKind.Relative));