W WinRT, jak mogę załadować obraz, a następnie zaczekać tylko tak długo, jak to będzie potrzebne, aby załadował się przed zapisaniem do niego?

Używam WriteableBitmapEx w projekcie WinRT. Załaduję obraz do mapy WriteableBitmap z biblioteki obrazów użytkowników. Jednak nie mogę od razu napisać do tego obrazu, jeśli to zrobię, zostanie nadpisany samym obrazem (wygląda na to, że Async ładuje obraz, a następnie nadpisuje mój rysunek na wierzchu). Nie wiem, jak temu zapobiec (próbowałem użyć Await na SetSource, ale nie jest to metoda Async).

Użyłem „Await Task.Delay (1000)” i to działa, ale wydaje się hacky, ponieważ 1000ms może, ale nie musi być wystarczająco dużo czasu. Chciałbym, żeby poczekał, aż bitmapa zostanie załadowana przed kontynuowaniem.

Czy ktoś może wydawać się nie na miejscu, co robię źle, lub sugerować, w jaki sposób mogę zapewnić ładowanie mapy WriteableBitmap z biblioteki obrazów przed wykonaniem jakiegokolwiek przetwarzania? Oto przykładowy fragment kodu, który stworzyłem:

<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>

questionAnswers(3)

yourAnswerToTheQuestion