In meiner UWP-App speichere ich Bilder in einer SQLite-Datenbank in Form von byte []. Wenn ich dann meine Objekte aus der Datenbank abrufe, binde ich sie an eine GridView-Datenvorlage, die ein Image-Steuerelement besitzt. Als ich das Bild der Quelle direkt an das Array binden kann nicht, so habe ich eine Bitmap Eigenschaft in meinem Objektklasse erstellt die Bildsteuerung zu binden:UWP BitmapImage SetSource aus MemoryStream hängt
public BitmapImage Icon
{
get
{
using (var stream = new MemoryStream(icon))
{
stream.Seek(0, SeekOrigin.Begin);
var img = new BitmapImage();
img.SetSource(stream.AsRandomAccessStream());
return img;
}
}
}
Das Problem ist, hängt meine App auf dem img.SetSource Linie . Nach einigem Experimentieren habe ich festgestellt, dass dieses Problem mit einem zweiten Memory überwunden werden kann:
public BitmapImage Icon
{
get
{
using (var stream = new MemoryStream(icon))
{
stream.Seek(0, SeekOrigin.Begin);
var s2 = new MemoryStream();
stream.CopyTo(s2);
s2.Position = 0;
var img = new BitmapImage();
img.SetSource(s2.AsRandomAccessStream());
s2.Dispose();
return img;
}
}
}
Aus irgendeinem Grunde funktioniert es, nicht hängen. Ich wundere mich warum? Und wie kann man mit dieser Situation richtig umgehen? Vielen Dank!
Die perfekt für mich und das hängende Problem in meinem Projekt gearbeitet hatte, von diesen Datawriter fest. Vielen Dank für Ihre Informationen. –