Image.ImageFailed Kejadian

Definisi

Terjadi ketika ada kesalahan yang terkait dengan pengambilan gambar atau format.

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"/>

Jenis Acara

Keterangan

Kondisi di mana peristiwa ini dapat terjadi meliputi:

  • File tidak ditemukan
  • Format file tidak valid (tidak dikenal atau tidak didukung)
  • Kesalahan pendekodean format file yang tidak diketahui setelah diunggah
  • Sumber daya yang memenuhi syarat dimuat ulang oleh sistem Anda mungkin dapat menggunakan ErrorMessage dalam data peristiwa untuk menentukan sifat kegagalan.

ImageFailed dan ImageOpened saling eksklusif. Satu peristiwa atau yang lain akan selalu diaktifkan setiap kali Gambar memiliki kumpulan nilai Sumber atau reset.

Salah satu skenario untuk menangani ImageFailed adalah mengatur UriSource dari sumber BitmapImage yang mendasarinya ke file gambar lokal yang berbeda. Ini dapat berfungsi sebagai nilai fallback untuk ditampilkan alih-alih ruang kosong. Misalnya, jika Anda mencoba menampilkan gambar eksternal di mana ada kemungkinan bahwa sumber tidak lagi ada, atau ketika pengguna tidak memiliki koneksi Internet, Anda dapat mengatur UriSource untuk mereferensikan fallback lokal atau gambar tempat penampung yang merupakan bagian dari paket aplikasi Anda dan selalu dijamin tersedia.

Saat elemen Gambar tidak berada di pohon visual langsung, elemen Gambar tidak akan mengaktifkan peristiwa ImageOpened atau ImageFailed. Jika Anda perlu menerima peristiwa ini saat elemen tidak berada di pohon langsung, gunakan BitmapImage. ImageOpened/Peristiwa 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;
}

Perilaku Windows 8

Untuk Windows 8, sumber daya dapat menggunakan pola kualifikasi sumber daya untuk memuat sumber daya yang berbeda tergantung pada penskalaan khusus perangkat. Namun, sumber daya tidak dimuat ulang secara otomatis jika faktor penskalakan berubah saat aplikasi berjalan. Dalam hal ini aplikasi harus mengurus memuat ulang sumber daya, dengan menangani peristiwa DpiChanged (atau peristiwa LogicalDpiChanged yang tidak digunakan lagi) dan menggunakan RESOURCEManager API untuk memuat ulang sumber daya secara manual yang sesuai untuk faktor penskalaan baru. Dimulai dengan Windows 8.1, sumber daya apa pun yang awalnya diambil untuk aplikasi Anda secara otomatis dievaluasi ulang jika faktor penskalaan berubah saat aplikasi berjalan. Selain itu, ketika sumber daya tersebut adalah sumber gambar untuk objek Gambar , maka salah satu peristiwa pemuatan sumber (ImageOpened atau ImageFailed) diaktifkan sebagai akibat dari tindakan sistem untuk meminta sumber daya baru dan kemudian menerapkannya ke Gambar. Skenario di mana perubahan skala run-time mungkin terjadi adalah jika pengguna memindahkan aplikasi Anda ke monitor yang berbeda saat lebih dari satu tersedia.

Jika Anda memigrasikan kode aplikasi dari Windows 8 ke Windows 8.1, Anda mungkin ingin memperhitungkan perubahan perilaku ini, karena menghasilkan peristiwa ImageOpened atau ImageFailed yang terjadi pada run-time saat perubahan skala ditangani, bahkan dalam kasus di mana Sumber diatur dalam XAML. Selain itu, jika Anda memiliki kode yang menangani DpiChanged/LogicalDpiChanged dan mengatur ulang sumber daya, Anda harus memeriksa apakah kode tersebut masih diperlukan mengingat perilaku pemuatan ulang otomatis Windows 8.1 yang baru.

Aplikasi yang dikompilasi untuk Windows 8 tetapi berjalan di Windows 8.1 terus menggunakan perilaku Windows 8.

Berlaku untuk