Wie baue ich eine Pack-URI zu einem Bild, das in einer Ressource-Datei ist?Pack URI zu Bild in eine Resx-Datei eingebettet
Ich habe eine Baugruppe MyAssembly.Resources.dll
genannt, es einen Ordner Bilder, dann genannt hat in einer Ressourcendatei Assets.resx genannt wird. Diese Ressourcendatei enthält mein Bild (MyImage.png). Die Codezeile ich habe, ist:
uri = new Uri("pack://application:,,,/MyAssembly.Resources,Culture=neutral,PublicKeyToken=null;component/Images/Assets/MyImage.png");
aber wenn ich versuche, diesen URI an den Konstruktor eines neuen BitmapImage ich eine IOException mit der Nachricht
kann nicht gefunden Ressource ‚images/Vermögen erhalten liefern /myimage.png '.
Bitte beachte, dass ich andere lose Bilder in derselben Anordnung, die ich fein mit einem Paket-URI abrufen kann, haben diese Bilder ihre Build-Aktion gesetzt auf Resource aber sie sind in einer resx Datei nicht eingebettet. Sollte ich den Namen der Resx-Datei in den Pfad aufnehmen?
(Ich bin auf der Suche nach Bildern in Resx-Dateien einbetten, so dass ich UI Kultureinstellungen nutzen kann, um das richtige Bild (das Bild enthält Text)) zu erhalten.
Was macht Sie denken, es ist möglich, mit 'Pack:' -Regelung? Dies hängt mit den standardisierten Open Packaging Conventions-Spezifikationen zusammen. Die URL verweist also auf die Ressourcen des Anwendungspakets und nicht auf eingebettete .NET-Ressourcen. Es könnte jedoch mit einem anderen Schema/Protokoll möglich sein (Sie könnten dieses benutzerdefinierte Protokoll auf eingebettete Ressourcen umleiten, etwa "new Uri" ("resx: // blabla")). –
@SimonMourier Ich dachte, es muss einen Weg geben, es zu tun, weil Sie mit Strings in ResX-Dateien von XAML verlinken können, so dass es unwahrscheinlich wäre, dass es keine Möglichkeit gibt, andere Ressourcentypen innerhalb der gleichen Datei zu erreichen Ein URI ist eine Möglichkeit, einen Pfad zu einer Ressource zu beschreiben. Wenn Sie einen Vorschlag bezüglich der Verwendung eines benutzerdefinierten Protokolls haben, würde ich mich freuen, es zu hören. Die losen (nicht textlichen) Bilder werden alle mit einem Pack-URI referenziert, so dass ich die Konsistenz möglichst beibehalten wollte. – slugster