2011-08-08 87 views
1

我使用以下代碼來從文件的圖像加載成位圖圖像類在一個特定的大小,以顯示給用戶:如何判斷WPF位圖圖像是否加載失敗?

   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()後檢查以確保圖像已加載?

回答

3

使用resized.DownloadFailed事件得到通知。

+0

謝謝!它看起來像DecodeFailed上發生。有沒有辦法從這些處理程序向用戶顯示消息?看起來它們都發生在UI線程之外。 –

+1

@Dan:使用類似於:Dispatcher.BeginInvoke(new Action(()=> {/ *她來自您的動作* /}),DispatcherPriority.ApplicationIdle); – HCL

0

您也可以使用ImageFailed事件。

相關問題