Image.ImageFailed 事件

定義

發生於與影像擷取或格式相關聯的錯誤時。

public:
 virtual event ExceptionRoutedEventHandler ^ ImageFailed;
// Register
event_token ImageFailed(ExceptionRoutedEventHandler const& handler) const;

// Revoke with event_token
void ImageFailed(event_token const* cookie) const;

// Revoke with event_revoker
Image::ImageFailed_revoker ImageFailed(auto_revoke_t, ExceptionRoutedEventHandler const& handler) const;
public event ExceptionRoutedEventHandler ImageFailed;
function onImageFailed(eventArgs) { /* Your code */ }
image.addEventListener("imagefailed", onImageFailed);
image.removeEventListener("imagefailed", onImageFailed);
- or -
image.onimagefailed = onImageFailed;
Public Custom Event ImageFailed As ExceptionRoutedEventHandler 
<Image ImageFailed="eventhandler"/>

事件類型

備註

發生此事件的條件包括:

  • 找不到檔案
  • 無效 (無法辨識或不支援的檔案格式)
  • 上傳後發生未知的檔格式譯碼錯誤
  • 系統可重載限定的資源:您可能能夠在事件數據中使用 ErrorMessage 來判斷失敗的本質。

ImageFailed 和 ImageOpened 互斥。 每當 影像 設定或重設 Source 值時,一律會引發其中一個事件。

處理 ImageFailed 的其中一個案例是將基礎 BitmapImage 來源的 UriSource 設定為不同的本機圖像檔。 這可作為後援值來顯示,而不是空白空間。 例如,如果您嘗試顯示外部影像,其中來源可能已不存在,或當使用者沒有因特網連線時,您可以將 UriSource 設定為參考屬於您應用程式套件一部分的本機後援或佔位符映像,而且一律保證可供使用。

當 Image 元素不在即時可視化樹狀結構中時,Image 元素將不會引發 ImageOpened 或 ImageFailed 事件。 如果您需要在元素不在即時樹狀結構中時收到這些事件,請使用 BitmapImage。ImageOpened/ImageFailed 事件。

private void Image_ImageFailed(object sender, ExceptionRoutedEventArgs e) {
    Image img = sender as Image;
    BitmapImage fallbackImage = new BitmapImage(new Uri("ms-appx:///Images/fallback.png"));
    img.Width = 100; //set to known width of this source's natural size
     //might instead want image to stretch to fill, depends on scenario
    img.Source = fallbackImage;
}

影像資源

資源可以使用資源限定符模式,根據裝置特定的調整來載入不同的資源。 如果應用程式執行時縮放比例變更,系統會自動重新評估原本為應用程式擷取的任何資源。 此外,當該資源是 Image 物件的影像來源時,就會引發 ImageOpened 或 ImageFailed) 其中一個來源載入 (事件,因為系統要求新資源的動作,然後將它套用至 Image。 運行時間調整變更可能發生的案例,是當使用者在有一個以上的可用時,將您的應用程式移至不同的監視器。 因此,即使在 XAML 中設定 Source 的情況下,ImageOpened 或 ImageFailed 事件也會在運行時間發生。

適用於