Wo sind meine Ressourcen versteckt?

8

Ich habe ein Programm, das eine Reihe von Symbolen in einem "Icons" -Ordner enthält (die im Projekt mit Build Action = Resource enthalten sind).

In XAML kann ich auf diese Symbole mit Code wie <Image Source="../Icons/name.png"/> ("..") zugreifen, da XAML sich in einem anderen Unterordner befindet); Ich möchte jedoch dasselbe Bild in einem WinForms-Code im selben Projekt verwenden. Leider

%Vor%

gibt null und

zurück %Vor%

listet nur eine Reihe von * .resources-Dateien auf (eine für jede .resx und eine mit * .g.resources). Also, wie soll ich den Bildstrom bekommen?

    
Qwertie 12.07.2011, 21:13
quelle

3 Antworten

7

Ich nahm an, dass ich die Bilder direkt in mein Projekt aufgenommen habe, damit ich sie direkt lesen kann. Aber dank Jacks Antwort konnte ich herausfinden, dass sie in einer "Ressourcendatei" namens "ProgramName.g.resources" in der Assembly versteckt sind. Um das Bild zu lesen, muss zuerst die Ressourcendatei geladen und dann die Bilddatei in der Ressourcendatei gesucht werden.

ResourceSet.GetObject unterscheidet zwischen Groß- und Kleinschreibung, aber der Bildpfad und der Dateiname wurden aus irgendeinem Grund in Kleinbuchstaben umgewandelt, daher rufe ich ToLowerInvariant für den Pfadnamen auf. Hier ist meine Lösung:

%Vor%

Ich bin mir nicht sicher, wie teuer es ist, ein ResourceSet zu erstellen. Wenn es teuer ist und Sie mehrere Ressourcen abrufen möchten, sollten Sie das Objekt ResourceSet zwischenspeichern und erneut verwenden.

Bitte hinterlassen Sie eine Nachricht, wenn Sie wissen, warum die Bilder in der * .g.resources-Datei landen. Hat Visual Studio diesen Namen gewählt? Ist es theoretisch möglich, Bilder direkt in eine Baugruppe zu legen, oder können Baugruppen nur "ResourceSets" enthalten?

    
Qwertie 15.07.2011, 18:42
quelle
2

Sie können Hilfe finden von:

Ссылка

Ссылка

Im ersten Link können Sie eine Möglichkeit finden, die Ressource vom Typ UnmanagedMemoryStream zu erhalten. Dann sollten Sie einen Weg finden, den Stream in den gewünschten Typ zu konvertieren.

Hoffe es hilft dir!

%Vor%     
Jack 13.07.2011 00:51
quelle
0

Hilft dieser Link? Es zeigt programmatisch das Laden einer Ressource ...

Ссылка

    
CodingWithSpike 12.07.2011 23:28
quelle

Tags und Links