1
BitmapImage resized = new BitmapImage();
FileStream fs = new FileStream(ImageSource, FileMode.Open);
MemoryStream ms = new MemoryStream();
fs.CopyTo(ms);
fs.Close();
resized.BeginInit();
resized.CacheOption = BitmapCacheOption.OnDemand;
resized.DecodePixelHeight = (int)(_imageBaseHeight * zoomRate);
resized.DecodePixelWidth = (int)(_imageBaseWidth * zoomRate);
resized.StreamSource = ms;
resized.EndInit();
ImageDisplay = resized;
問題であること時々、特に大きな画像に、この意志静かに失敗し、例外を発生させずに空のイメージを表示します。 EndInit()の後に画像がロードされたことを確認できるフラグがありますか?
ありがとうございました! DecodeFailedで起きているようです。これらのハンドラからユーザにメッセージを表示する方法はありますか?両方ともUIスレッドから発生しているように見えます。 –
@Dan:Dispatcher.BeginInvoke(新しいアクション(()=> {/ *彼女はあなたのアクションがあります* /})、DispatcherPriority.ApplicationIdle); – HCL