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 の質問からわかるように、null 参照例外が発生する理由は、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 に答える