Wie lade ich in WinRT ein Image und warte dann nur so lange, bis es geladen ist, bevor ich darauf schreibe?

Ich verwende WriteableBitmapEx in einem WinRT-Projekt. Ich lade ein Bild aus der Bildbibliothek des Benutzers in eine WriteableBitmap. Ich kann dann jedoch nicht sofort auf dieses Bild schreiben. Andernfalls wird es mit dem Bild selbst überschrieben (es scheint, als würde Async das Bild laden und dann meine Zeichnung darüber überschreiben). Ich weiß nicht, wie ich das verhindern soll (ich habe versucht, Await auf der SetSource zu verwenden, aber das ist keine Async-Methode).

Ich habe eine "Await Task.Delay (1000)" verwendet und das funktioniert, aber es scheint schwierig zu sein, weil 1000 ms möglicherweise nicht ausreichen. Ich möchte, dass es wartet, bis die Bitmap geladen ist, bevor ich fortfahre.

Kann jemand etwas falsch machen oder mir vorschlagen, wie ich sicherstellen kann, dass die WriteableBitmap aus der Bilderbibliothek geladen wird, bevor ich sie verarbeite? Hier ist das Beispiel-Code-Snippet, das ich erstellt habe:

<code>Dim file = Await picker.PickSingleFileAsync

If file Is Nothing Then
    Exit Sub
End If

Dim wbm As New WriteableBitmap(1, 1)
wbm.SetSource(Await file.OpenAsync(Windows.Storage.FileAccessMode.Read))

' If I don't have this, the DrawLine will not show up, if I do, it will.
Await Task.Delay(1000)

wbm.DrawLine(1, 1, 255, 255, Colors.Green)
wbm.Invalidate()

ImageMain.Source = wbm
</code>

Antworten auf die Frage(3)

Ihre Antwort auf die Frage