Condividi tramite


Image.ImageFailed Evento

Definizione

Si verifica quando si verifica un errore associato al recupero o al formato dell'immagine.

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

Tipo evento

Commenti

Le condizioni in cui può verificarsi questo evento includono:

  • Impossibile trovare il file
  • Formato di file non valido (non riconosciuto o non supportato)
  • Errore di decodifica del formato di file sconosciuto dopo il caricamento
  • Ricaricamento completo delle risorse dal sistema È possibile usare ErrorMessage nei dati dell'evento per determinare la natura dell'errore.

ImageFailed e ImageOpened si escludono a vicenda. Un evento o l'altro verrà sempre attivato ogni volta che un oggetto Image ha un valore di origine impostato o reimpostato.

Uno scenario per la gestione di ImageFailed consiste nell'impostare UriSource dell'origine BitmapImage sottostante su un file di immagine locale diverso. Può fungere da valore di fallback da visualizzare invece di spazio vuoto. Ad esempio, se si sta tentando di visualizzare un'immagine esterna in cui è possibile che l'origine non sia più presente o per quando l'utente non ha connessione Internet, è possibile impostare UriSource per fare riferimento a un'immagine di fallback locale o segnaposto che fa parte del pacchetto dell'app ed è sempre garantita la disponibilità.

Quando l'elemento Image non si trova nella struttura ad albero visuale attiva, l'elemento Image non genera eventi ImageOpened o ImageFailed. Se è necessario ricevere questi eventi mentre l'elemento non si trova nell'albero live, usare BitmapImage. ImageOpened/Eventi 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;
}

Comportamento di Windows 8

Per Windows 8, le risorse possono usare un modello di qualificatore di risorse per caricare risorse diverse a seconda del ridimensionamento specifico del dispositivo. Tuttavia, le risorse non vengono ricaricate automaticamente se il fattore di ridimensionamento cambia mentre l'app è in esecuzione. In questo caso, le app devono eseguire il ricaricamento delle risorse, gestendo l'evento DpiChanged (o l'evento LogicalDpiChanged deprecato) e usando l'API ResourceManager per ricaricare manualmente la risorsa appropriata per il nuovo fattore di ridimensionamento. A partire da Windows 8.1, tutte le risorse recuperate originariamente per l'app vengono valutate automaticamente se il fattore di ridimensionamento cambia durante l'esecuzione dell'app. Inoltre, quando tale risorsa è l'origine dell'immagine per un oggetto Image , uno degli eventi di caricamento di origine (ImageOpened o ImageFailed) viene generato in seguito all'azione del sistema di richiesta della nuova risorsa e quindi l'applicazione all'immagine. Lo scenario in cui può verificarsi una modifica della scalabilità in fase di esecuzione è se l'utente sposta l'app in un monitoraggio diverso quando è disponibile più di una.

Se esegui la migrazione del codice dell'app da Windows 8 a Windows 8.1 potresti voler tenere conto di questa modifica del comportamento, perché genera eventi ImageOpened o ImageFailed che si verificano in fase di esecuzione quando viene gestita la modifica della scala, anche nei casi in cui l'origine è impostata in XAML. Inoltre, se si dispone di codice che ha gestito DpiChangedLogicalDpiChanged/ e reimpostato le risorse, è necessario esaminare se tale codice è ancora necessario in base al nuovo comportamento di ricaricamento automatico Windows 8.1.

Le app create per Windows 8 che vengono eseguite in Windows 8.1 continuano a usare il comportamento di Windows 8.

Si applica a