In meiner Anwendung verwende ich die unten erwähnte Hilfsmethode, um mein isoliertes Speicherabbild an die Bildsteuerung zu binden. Ich habe diese Hilfsmethode aus dem Link " Bindung von Bildern, die im isolierten Speicher an die Bildsteuerung in Windows Phone gespeichert sind "
%Vor%}
Ich verwende das in einem ListBox-Steuerelement. Und wenn Sie mit Standard-Bibliotheksbildern versuchen, wird alles wie erwartet funktionieren. Aber wenn ich mit den Bildern mit großer Größe versuche (aufgenommen durch die Gerätekamera) stürzt die App ab.
Und hier ist die Ausnahme, die ich bekomme
Eine Ausnahme vom Typ 'System.OutOfMemoryException' ist in System.Windows.ni.dll aufgetreten, wurde aber nicht im Benutzercode behandelt
Stapelverfolgung
bei MS.Internal.FrameworkCallbacks.NotifyManagedDebuggerOnNativeOOM () bei MS.Internal.XcpImports.BitmapSource_SetSource (BitmapSource BitmapSource, CValue & amp; byteStream) bei System.Windows.Media.Imaging.BitmapSource.SetSourceInternal (Stream streamSource) bei System.Windows.Media.Imaging.BitmapImage.SetSourceInternal (Stream-Stream-Quelle) bei System.Windows.Media.Imaging.BitmapSource.SetSource (Stream streamSource) bei MyaPP.Common.IsoStoreImageSource. & lt; & gt; c__DisplayClass4. & lt; & gt; c__DisplayClass6.b__1 (Objekt _)
Okay, es hat etwas gedauert, bis ich auf dieses Thema zurückgekommen bin. Ich werde meine Ergebnisse hier teilen, aber ich betrachte sie nicht als eine echte Antwort auf das Problem, sondern eher als Workaround. Ich hoffe jedoch, es wird jemandem helfen.
Zuerst möchte ich OutOfMemoryException
unter bestimmten Umständen bestätigen. Aber überraschend hängt es vom Seitenlayout ab, das Sie verwenden. Wenn Ihr Layout StackPanel
enthält, haben Sie eine Ausnahme. Ich denke, es kommt auf die Tatsache an, wie MeasureOverride
und ArrangeOverride
Methoden in StackPanel
implementiert sind (obwohl ich hier völlig falsch liegen kann). Wenn ListBox
ein untergeordnetes Objekt für StackPanel
ist, versucht es, alle Bilder vor der Anzeige zu laden. Dies verursacht natürlich den Speicherverlust.
Wenn Sie andererseits etwas wie Grid
als übergeordnetes Element für die Liste der Bilder verwenden, gibt es keine solchen Ausnahmen und die Speicherauslastung ist angemessen.
Hier ist das Seitenlayout, das für mich funktioniert hat:
%Vor%Dies ist die beste Antwort, die ich jetzt für dich habe. Bitte lassen Sie mich wissen, wenn es geholfen hat.
Tags und Links windows-phone-8 windows-phone-7 windows-phone