Image.ImageFailed Événement

Définition

Se produit lorsqu’une erreur est associée à la récupération ou au format de l’image.

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

Type d'événement

Remarques

Les conditions dans lesquelles cet événement peut se produire sont les suivantes :

  • Fichier introuvable
  • Format de fichier (non reconnu ou non pris en charge) non valide
  • Erreur de décodage du format de fichier inconnu après le chargement
  • Rechargement de ressources qualifié par le système Vous pouvez peut-être utiliser errorMessage dans les données d’événement pour déterminer la nature de l’échec.

ImageFailed et ImageOpened s’excluent mutuellement. Un événement ou un autre se déclenche toujours chaque fois qu’une valeur Source est définie ou réinitialisée dans une image.

L’un des scénarios de gestion d’ImageFailed consiste à définir l’UriSource de la source BitmapImage sous-jacente sur un autre fichier image local. Cela peut servir de valeur de secours à afficher au lieu d’un espace vide. Par exemple, si vous essayez d’afficher une image externe où il est possible que la source ne soit plus là, ou lorsque l’utilisateur n’a pas de connexion Internet, vous pouvez définir UriSource pour référencer une image d’espace réservé ou de secours locale qui fait partie de votre package d’application et qui est toujours disponible.

Lorsque l’élément Image ne se trouve pas dans l’arborescence visuelle dynamique, l’élément Image ne déclenche pas les événements ImageOpened ou ImageFailed. Si vous devez recevoir ces événements alors que l’élément n’est pas dans l’arborescence dynamique, utilisez BitmapImage. ImageOpened/Événements 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;
}

Comportement de Windows 8

Pour Windows 8, les ressources peuvent utiliser un modèle de qualificateur de ressources pour charger différentes ressources en fonction de la mise à l’échelle propre à l’appareil. Toutefois, les ressources ne sont pas rechargées automatiquement si le facteur de mise à l’échelle change pendant l’exécution de l’application. Dans ce cas, les applications doivent s’occuper du rechargement des ressources, en gérant l’événement DpiChanged (ou l’événement LogicalDpiChanged déprécié) et en utilisant l’API ResourceManager pour recharger manuellement la ressource appropriée pour le nouveau facteur de mise à l’échelle. À compter de Windows 8.1, toute ressource récupérée à l’origine pour votre application est automatiquement réévaluée si le facteur de mise à l’échelle change pendant l’exécution de l’application. En outre, lorsque cette ressource est la source d’image d’un objet Image, l’un des événements de chargement de la source (ImageOpened ou ImageFailed) est déclenché à la suite de l’action du système qui demande la nouvelle ressource, puis l’applique à l’Image. Le scénario où un changement d’échelle au moment de l’exécution peut se produire si l’utilisateur déplace votre application vers un autre moniteur quand plusieurs sont disponibles.

Si vous migrez votre code d’application de Windows 8 vers Windows 8.1 vous pouvez tenir compte de ce changement de comportement, car cela entraîne des événements ImageOpened ou ImageFailed qui se produisent au moment de l’exécution lorsque la modification de mise à l’échelle est gérée, même dans les cas où la source est définie en XAML. En outre, si vous avez du code qui gérait DpiChanged/LogicalDpiChanged et réinitialise les ressources, vous devez vérifier si ce code est toujours nécessaire compte tenu du nouveau comportement de rechargement automatique de la nouvelle Windows 8.1.

Les applications qui ont été compilées pour Windows 8, mais qui sont exécutées dans Windows 8.1, continuent d’appliquer le comportement Windows 8.

S’applique à