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