5

所以我试图将图像加载到 WriteableBitmap 中,但我得到了 NullReferenceException。不知道为什么,因为我认为这以前可以工作

BitmapImage b = new BitmapImage(new Uri(@"images/Car.jpg", Urikind.Relative)); WriteableBitmap wb = new WriteableBitmap(b);

就是这样。我将汽车图像作为项目中的资源。它工作正常,因为我可以创建一个 Image 控件并将其源设置为 BitmapImage 并显示它。谢谢

4

1 回答 1

12

从其他 SO 问题中可以看出,您获得空引用异常的原因似乎是BitmapImage.CreateOptions 属性默认值为BitmapCreateOptions.DelayCreation. 您可以将其设置为并在加载图像后BitmapCreateOptions.None创建:WriteableBitmap

BitmapImage img = new BitmapImage(new Uri("somepath",UriKind.Relative));
img.CreateOptions = BitmapCreateOptions.None;
img.ImageOpened += (s, e) =>
   {
       WriteableBitmap wbm = new WriteableBitmap((BitmapImage)s);
   };

使用该代码,WritableBitmap将等到BitmapImage加载,然后将能够分配给WritableBitmap.

于 2012-09-03T00:37:39.100 回答