WinRT プロジェクトで WriteableBitmapEx を使用しています。ユーザーの画像ライブラリから WriteableBitmap に画像を読み込みます。ただし、その画像にすぐに書き込むことはできません。そうすると、画像自体で上書きされます(画像を非同期でロードし、その上に描画を上書きしているようです)。それを止める方法がわかりません( SetSource で Await を使用しようとしましたが、それは Async メソッドではありません)。
「Await Task.Delay(1000)」を使用しましたが、それは機能しますが、1000ミリ秒では十分な時間ではない場合があるため、ハッキーに思えます.ビットマップがロードされるまで待ってから続行してください。
誰かが私が間違っていることをトップから外したように見えたり、処理を行う前に WriteableBitmap が画像ライブラリからロードされていることを確認する方法を提案したりできますか? 作成したコード スニペットの例を次に示します。
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