webentwicklung-frage-antwort-db.com.de

UWP - Image Uri im Anwendungsordner

Ich habe hier ein kleines Problem damit, Bilder zu zeigen.

Wenn ich versuche, Bilder aus XAML zu laden, kann ich einen relativen URI für die Bildquelle wie folgt verwenden:

<Image Source="/Assets/image.jpg" />

Wenn ich jedoch versuche, die Bildquelle programmgesteuert vom dahinter liegenden Code zu ändern, erhalte ich immer eine Ausnahme und bin sicher, dass dies auf den falschen Uri zurückzuführen ist. Ich habe so etwas ausprobiert:

BitmapImage bitmapImage = new BitmapImage(new Uri("/Assets/image.jpg"));

Mache ich es falsch? Jede Hilfe wird dankbar sein!

18
Stephen Djohan

Um auf Dateien zuzugreifen, die im Anwendungspaket gespeichert sind, jedoch aus einem Code, in dem keine Root-Berechtigung vorhanden ist, müssen Sie das Schema ms-appx: angeben:

In Ihrem Fall wird es also so aussehen:

BitmapImage bitmapImage = 
                     new BitmapImage(new Uri("ms-appx:///[project-name]/Assets/image.jpg"));

Weitere Informationen finden Sie in dieser Dokumentation: https://msdn.Microsoft.com/en-us/library/windows/apps/xaml/hh965322.aspx

Ich hoffe es hilft.

31
Norman Sasono

Sie können es auch mit BaseUri verwenden.

BitmapImage bitmapImage = new BitmapImage(new Uri(this.BaseUri, "/Assets/image.jpg"));

Assets ist ein Ordnername, den Sie mit Ihrem benutzerdefinierten Ordnernamen ändern können :)

31
Zia Ur Rahman

Ich glaube, WPF ist verzeihender und Pfade wie "Assets/image.png" sind möglich. Wenn Sie eine UWA-App (Win 10) schreiben, müssen Sie die URIs "ms-appx" verwenden.

Meine Erfahrung ist "ms-appx: ///Assets/image.png" funktioniert einwandfrei.

Ja, drei "/" (!) Und keine Notwendigkeit für den Namen der App im Pfad.

1
Tb.