2

我在 CaptureImageAvailable 事件中获得 ImageStream。在 ContentReadyEventArgs 我有 ImageStream。

我尝试通过 BitmapImage 将此 Stream 复制到 Image:

Image cameraImage=new Image();
BitmapImage bImage=new BitmapImage();
    private void CaptureImageAvailable(object sender, ContentReadyEventArgs e)
    {

        bImage.SetSource(e.ImageStream);
        cameraImage.Source = bImage;
    }

但我在步骤 bImage.SetSource(e.ImageStream); 上有错误

我应该如何阅读这个 ImageStream?

谢谢!

4

1 回答 1

2

Source如果您不在主线程上,则无法分配该属性。在这种情况下,你不是。为此,只需使用强制调用它Dispatcher

Image cameraImage=new Image();
BitmapImage bImage=new BitmapImage();

private void CaptureImageAvailable(object sender, ContentReadyEventArgs e)
{
    Dispatcher.BeginInvoke(()=>
    {
        bImage.SetSource(e.ImageStream);
        cameraImage.Source = bImage;
    });
}

如果您不在页面内(例如,您在视图模型或其他非 UI 类内),请使用以下语法:

Deployment.Current.Dispatcher.BeginInvoke(()=>
{
    /* ... */
});
于 2013-09-11T14:35:25.630 回答