Ich habe ein Image
Steuerelement in ein Fenster eingefügt und möchte ein Bild anzeigen, das in einer Projektressourcendatei mit dem Namen "Resources.resx" gespeichert ist. Der Name des Bildes in der Ressourcendatei lautet "Suchen".
Könnte mir jemand zeigen, wie ich das machen könnte?
Wenn Sie ein Bild im Ordner "Symbole" Ihres Projekts haben und dessen Erstellungsaktion "Ressource" lautet, können Sie wie folgt darauf verweisen:
<Image Source="/Icons/play_small.png" />
Das ist der einfachste Weg, dies zu tun. Dies ist der einzige Weg, den ich mir vorstellen könnte, wenn ich es nur vom Standpunkt der Ressourcen aus und ohne Projektdateien mache:
var resourceManager = new ResourceManager(typeof (Resources)); var bitmap = resourceManager.GetObject("Search") as System.Drawing.Bitmap; var memoryStream = new MemoryStream(); bitmap.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp); memoryStream.Position = 0; var bitmapImage = new BitmapImage(); bitmapImage.BeginInit(); bitmapImage.StreamSource = memoryStream; bitmapImage.EndInit(); this.image1.Source = bitmapImage;
quelle
<Image Source="/Icons/play_small.png" />
Beachten Sie den Schrägstrich am Anfang, dh schauen Sie in den Stammordner. Wenn sich die xaml-Datei nicht im Stammverzeichnis befindet, ist dies erforderlich, da ohne den Schrägstrich die Suche im selben Verzeichnis wie die xaml-Datei gestartet wird.Einer der Vorteile der Verwendung der Ressourcendatei besteht darin, über Namen auf die Ressourcen zuzugreifen, sodass sich das Bild und der Bildname ändern können, solange die Ressource auf dem neuesten Stand gehalten wird. Das richtige Bild wird angezeigt.
Hier ist ein sauberer Ansatz, um dies zu erreichen: Angenommen, Resources.resx befindet sich im Namespace 'UI.Images', fügen Sie die Namespace-Referenz wie folgt in Ihre xaml ein:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:UI="clr-namespace:UI.Images"
Stellen Sie Ihre Bildquelle folgendermaßen ein:
<Image Source={Binding {x:Static UI:Resources.Search}} />
Dabei ist 'Suche' der Name der Ressource.quelle
<Image Source="MyRessourceDir\images\addButton.png"/>
quelle