2017-06-29 4 views
0

Ich bin derzeit auf ein Stück meines Projekts in Visual Studio 2017 stecken. Der folgende Code soll die Quelle einer Image-Komponente auf einer .xaml-Seite festlegen.Casting BitmapImage zu Image.Quelle

private void setImage() 
    { 
     var image = new Image(); 
     var imageUrl = @"http://ddragon.leagueoflegends.com/cdn/5.2.1/img/" + 
     currentChamp.Image.Group + "/" + currentChamp.Image.Full; 
     Debug.Write(imageUrl); 
     BitmapImage bmi = new BitmapImage(); 
     bmi.BeginInit(); 
     bmi.UriSource = new Uri(imageUrl, UriKind.Absolute); 
     bmi.EndInit(); 

     image.Source = bmi; 
    } 

Hier ist der Code, auf den verwiesen wird. ^^^

In allen anderen Fragen habe ich gefunden ähnlich zu dem, was ich fragen, dies ist einstimmig die richtige/geantwortet/genehmigt Art zu tun, was ich versuche zu tun. Allerdings erhalte ich einen Fehler, dass niemand sonst in irgendeiner der Frage erhalten hat

kann nicht implizit system.windows.media.imaging.BitmapImage konvertieren Windows.UI.XAML.media.ImageSource

Meine Importe, Referenzen und Typen wurden alle überprüft und sind korrekt. Fehle ich einen Rahmen? Gab es ein Update, das dazu geführt haben könnte, dass das nicht mehr funktioniert?

Ich verwende VS2017 in Microsoft.NETCore.UniversalWindowsPlatform Arbeits

Beachten Sie, dass dies nicht ein Duplikat this ist, wie ich bin nicht eine Ressource-Ordner und mein Weg ist Referenzierung Absoluten.

Antwort

1

Windows.Media.Imaging.BitmapImage ist eine WPF-Klasse. Windows.UI.XAML.media.ImageSource ist UWP. Sie haben Lösungen für WPF gefunden, aber Ihre Klasse UWP Image möchte ein UWP-Bitmap-Objekt. Sie benötigen etwas mit .

Ich bin nicht in der Lage UWP im Moment zu testen, aber die Dokumentation aus der Lektüre, ich glaube, Sie so etwas wie dies will:

image.Source = new Windows.UI.Xaml.Media.Imaging.BitmapImage(new Uri(imageUrl, UriKind.Absolute)); 

Sie müssen using Windows.Media.Imaging; in der Datei C# haben. Es wäre klug, zu ersetzen, dass mit using Windows.UI.Xaml.Media.Imaging;

Dann könnten Sie nur verwenden:

image.Source = new BitmapImage(new Uri(imageUrl, UriKind.Absolute)); 
+0

Das funktionierte perfekt, wie Ihr Beispiel tat. Vielen Dank, das hätte ich nie verstanden. Ich bin relativ neu in C# und Debugging war meine größte Herausforderung. – spaff

1

Die Fehlermeldung hier zeigt Ihnen genau, was falsch ist. Sie verwenden ein Nicht-UWP BitmapImage in einem UWP-Projekt. Befreien Sie sich von Ihrer Verwendung für System.Windows.Media.Imaging und ändern Sie sie in Windows.UI.Xaml.Media.Imaging.