2016-05-02 9 views
0

Ich habe wenig Erfahrung in der Programmierung mit C# + XAML-Umgebung für Windows Phone 8.1. Kürzlich habe ich an einer App gearbeitet, die zur Laufzeit Bild- und Audio-Ressourcen lädt. Obwohl ich keine Probleme mit Audio habe, kann ich die Bilder nicht laden. Ich habe bereits viele Lösungsvorschläge ausprobiert, aber ohne Erfolg.Windows Phone 8.1: Laden eines BitmapImage zur Laufzeit

Grundsätzlich in meiner MainPage.xaml Datei habe ich diese Zeile:

<Image Source="{Binding Portrait}"/>

und in dem relativen C# -Code Ich schrieb:

using Windows.UI.Xaml.Media.Imaging; ... Portrait.Source = new BitmapImage(new Uri("ms-appx:///Assets/Portraits/path/to specific/portrait.jpg", UriKind.Absolute));

Wenn ich die Anwendung ausführen, ein NullReferenceException wird ausgelöst und ich bin mir fast sicher, dass es ausgelöst wird, da die Quelle auf null festgelegt ist. Ich habe den Pfad überprüft und bin mir absolut sicher, dass es korrekt ist, außerdem habe ich die Resource Build Action auf Content gesetzt (ich habe es auch mit Embedded Resource versucht).

Ich behielt den Kontext einfach, aber sagen Sie mir, ob mehr Details benötigt werden.

Antwort

0

Der Ausdruck

Portrait.Source = new BitmapImage(...); 

bedeutet, dass Sie die Portrait Eigenschaft als Image erklärt haben, wie

public Image Portrait { get; set; } 

Neben, dass der Eigenschaftswert nicht initialisiert und Portrait ist null, wenn die Zuweisung erfolgt , sollte die Eigenschaft tatsächlich vom Typ ImageSource (oder BitmapSource) sein, da ImageSource der Typ deristEigenschaft, die Sie in XAML binden:

public ImageSource Portrait { get; set; } 

und Sie sollten es wie folgt vergeben:

Portrait = new BitmapImage(...); 
+0

es perfekt funktioniert jetzt, vielen Dank für die Hilfe Sir. – AreTor

Verwandte Themen