Bild aus IsolatedStorage wird nicht in der View angezeigt
Hallo zusammen,
ich lade mir aus dem Internet ein Bild in den IsolatedStorage und möchte es dann in einer View per Binding anzeigen.
In meinem Model gibt es die folgende Property:
Code:
Public ReadOnly Property CoverHauptUri As String
Get
Dim res As String = String.Empty
If Not String.IsNullOrEmpty(_CoverHaupt) Then
If IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication().FileExists("Cache\Images\cover_" & _CoverHaupt & ".jpg") Then
res = "/Cache/Images/cover_" & _CoverHaupt & ".jpg"
Else
res = "http://www.server.com/getimage/getimage_ws2_3.inc.php?idu=10700&idc=" & _CoverHaupt & "&art=B&size=135&upscale=J"
End If
End If
Return res
End Get
End Property
Diese Property ist in einer View(XAML) an ein Image-Object gebunden. Wenn das Bild lokal nicht existiert dann funktioniert alles wunderbar. Die Property gibt die Online-URL zurück und das Bild wird angezeigt. Wenn das Bild aber bereits heruntergeladen wurde dann wird dieses nicht mehr angezeigt.
Was mache ich da falsch? Ich möchte nur die Bilder die häufiger angezeigt werden zwischenspeichern um Traffic zu vermeiden.
MfG Johann Löwen
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Wenn du die URL mit /Cache/Images/cover... angibst, dann sucht er das Bild nicht im IsolatedStorage sondern beim Content der mitinstalliert wurde (das ist ein eigenes Verzeichnis).
Mit einer Uri ala: new Uri("isostore://test.jpg", UriKind.Absolute) sollte es eigentlich klappen. Bin mir bei der UriKind gerade nicht vollkommen sicher aber zur Not halt nochmal mit UriKind.Relative probieren.
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Danke, werde ich dann heute abend versuchen und dann hier berichten.
Ist es generel richtig so eine Art "Cache" im IsolatedStorage abzulegen oder gibt es da bessere möglichkeiten?
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Zitat:
Zitat von
StevieBallz
Mit einer Uri ala: new Uri("isostore://test.jpg", UriKind.Absolute) sollte es eigentlich klappen. Bin mir bei der UriKind gerade nicht vollkommen sicher aber zur Not halt nochmal mit UriKind.Relative probieren.
isostore:// ist absolut
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
also ich habe das jetzt so probiert:
Code:
Public ReadOnly Property CoverHauptUri As Uri
Get
Dim res As Uri = Nothing
If Not String.IsNullOrEmpty(_CoverHaupt) Then
If IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication().FileExists("cover_" & _CoverHaupt & ".jpg") Then
res = New Uri("isostore://cover_" & _CoverHaupt & ".jpg", UriKind.Absolute)
Else
res = New Uri("http://www.dvd-datenbank.com/getimage/getimage_ws2_3.inc.php?idu=10700&idc=" & _CoverHaupt & "&art=B&size=135&upscale=J", UriKind.Absolute)
End If
End If
Return res
End Get
leider hat das auch nicht funktioniert. Ich habe auch schon die Datei direkt ins IsolatedStorage gespeichert und die Verzeichnisse weggelassen aber es klappt immer noch nicht. Hat jemand eine Idee was ich noch falsch mache?
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Hab in der Arbeit leider einen XP-Rechner und damit keine Phone Developer Tools, wenn ich dazu komm bastel ich da heut Abend evtl. mal eine Demo-Anwendung.
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Hallo Johann,
soweit ich weiß, funktioniert das isostore prefix nur für Live Tiles und Datenbanken, sprich nicht direkt als Source für ein Image (vgl. z.B. diesen Thread). Folgendes dürfte klappen:
Code:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (var stream = new IsolatedStorageFileStream("cover_" & _CoverHaupt & ".jpg", FileMode.Open, store))
{
var bitmap = new BitmapImage();
bitmap.SetSource(stream);
return bitmap; // Image can bind to a Uri as well as to a BitmapImage.
}
}
Gruß
---------- Hinzugefügt um 09:19 ---------- Vorheriger Beitrag war um 09:18 ----------
Ups, gerade gesehen, dass Du Visual Basic benutzt. Hier nochmal dasselbe in VB:
Code:
Using store = IsolatedStorageFile.GetUserStoreForApplication()
Using stream = New IsolatedStorageFileStream("cover_" And _CoverHaupt And ".jpg", FileMode.Open, store)
Dim bitmap = New BitmapImage()
bitmap.SetSource(stream)
' Image can bind to a Uri as well as to a BitmapImage.
Return bitmap
End Using
End Using
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Dankeschön!
Ich werde es mal probieren und heute Abend dann mal berichten ob ich Erfolg damit hatte.
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt
Danke,
das hat super funktioniert. Vielen Dank.
MfG Johann Löwen
AW: Bild aus IsolatedStorage wird nicht in der View angezeigt