JPEG in Background Agent erstellen
Ich bin momentan dabei einen Background Agent zu schreiben, der periodisch Infos auf einer Live-Tile aktualisieren soll. Um das sinnvoll umzusetzen muss der Inhalt der Tile als Bild erstellt werden.
Ich erstelle also eine WriteableBitmap und Rendere in diese das Control mit den Daten.
Das ganze landet in "isostore:/Shared/ShellContent/blub.jpeg" und darauf verweise ich dann auch mit der Uri der Tile. Leider wird der Tile-Hintergrund dabei nur schwarz.
Hat da schon jemand Erfahrung gemacht?
AW: JPEG in Background Agent erstellen
Ich hab mich für meine App erst mit dem Thema rumgeschlagen. Falls es möglich ist, könntest Du den Code posten, das macht das Debuggen ein bisschen einfacher.
Ansonsten mal ein paar Schüsse ins Blaue:
Wenn Du ein schwarzes Hintergrundbild siehst, geh ich mal von aus dass das Erstellen der WriteableBitmap und das Speichern geklappt hat und die URL stimmt (sonst glaube ich zeigt er die Accent-Color an).
Falls das Control in ein Panel verpackst ist (also z.B. ein Grid, und da ist dann die TextBox drin), dann probier mal vor dem Rendern Measure() und Arrange() aufzurufen, da das Control ja nicht in einem VisualTree hängt.
Wenn WriteableBitmap.Render zum Zeichen aufgerufen wird, mach danach mal ein Invalidate auf die Bitmap.
AW: JPEG in Background Agent erstellen
Ich hab das ganze inzwischen soweit gelöst. Problem ist dass man ja das Rendering im UI-Thread machen muss (ja, sowas gibts auch im Background-Worker) und dann das Programm scheinbar schon "fertig" ist im Background-Thread und daher der Worker beendet wird (samt noch anstehendem Rendering im UI-Thread).
Das nicht existierende JPEG führte dann zu dem schwarzen Hintergrund.
AW: JPEG in Background Agent erstellen
Na ja, Measure muss man trotzdem aufrufen, ebenso Invalidate (aber das kannte ich schon vom Rendering in der normalen App). Danke jedenfalls für die Hilfe :)
AW: JPEG in Background Agent erstellen
Naive Frage, damit ich nicht zu lange suchen muss: Wie komme ich im Background Agent an den UI-Thread heran?
Bisher kenne ich [meinUIElement].Dispatcher.Invoke ... aber im Agent habe ich ja keine UI-Elemente.
AW: JPEG in Background Agent erstellen
Deployment.Current.Dispatcher.BeginInvoke...
Steht auch im Konstruktor der automatisch generierten Klasse des scheduled agents :)
AW: JPEG in Background Agent erstellen
Jupp, jetzt seh ich es auch. Danke. :D