2012-09-02 60 views
4

所以我試圖加載到一個WriteableBitmap圖像,但我得到一個NullReferenceException。想不通爲什麼,因爲我覺得這用來工作之前加載圖像到writeablebitmap

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

完蛋了。我的汽車圖像作爲我項目中的資源。它可以正常工作,因爲我可以創建一個Image控件並將它的源設置爲BitmapImage並顯示它。 謝謝

回答

11

從其他SO問題可以看出,您看到空引用異常的原因是BitmapImage.CreateOptions Property默認值爲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

+0

是啊,謝謝,那工作。 – kiznore

+0

@kiznore很高興幫助! –