Image.ImageFailed Evento

Definición

Se produce cuando se produce un error asociado a la recuperación o formato de la imagen.

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 de evento

Comentarios

Entre las condiciones en las que puede producirse este evento se incluyen:

  • Archivo no encontrado
  • Formato de archivo no válido (no reconocido o no admitido)
  • Error de descodificación de formato de archivo desconocido después de la carga
  • Recarga de recursos calificada por el sistema Podría usar ErrorMessage en los datos de eventos para determinar la naturaleza del error.

ImageFailed e ImageOpened son mutuamente excluyentes. Un evento o el otro siempre se activarán cada vez que una imagen tenga un valor de origen establecido o restablecido.

Un escenario para controlar ImageFailed es establecer el UriSource del origen BitmapImage subyacente en un archivo de imagen local diferente. Esto puede servir como un valor de reserva para mostrar en lugar de espacio vacío. Por ejemplo, si está intentando mostrar una imagen externa en la que es posible que el origen ya no esté allí, o cuando el usuario no tenga conexión a Internet, podría establecer el UriSource para hacer referencia a una imagen de reserva local o marcador de posición que forma parte del paquete de la aplicación y siempre está garantizada de estar disponible.

Cuando el elemento Image no está en el árbol visual activo, el elemento Image no activará los eventos ImageOpened o ImageFailed. Si necesita recibir estos eventos mientras el elemento no está en el árbol activo, use BitmapImage. ImageOpened/Eventos 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;
}

Comportamiento de Windows 8

Para Windows 8, los recursos pueden usar un patrón de calificador de recursos para cargar distintos recursos en función del escalado específico del dispositivo. Sin embargo, los recursos no se vuelven a cargar automáticamente si el factor de escalado cambia mientras se ejecuta la aplicación. En este caso, las aplicaciones tendrían que encargarse de volver a cargar los recursos, controlando el evento DpiChanged (o el evento LogicalDpiChanged en desuso) y usando la API de ResourceManager para volver a cargar manualmente el recurso adecuado para el nuevo factor de escalado. A partir de Windows 8.1, cualquier recurso que se recuperó originalmente para la aplicación se vuelve a evaluar automáticamente si el factor de escalado cambia mientras se ejecuta la aplicación. Además, cuando ese recurso es el origen de la imagen de un objeto Image , se desencadena uno de los eventos de carga de origen (ImageOpened o ImageFailed) como resultado de la acción del sistema de solicitar el nuevo recurso y, a continuación, aplicarlo a la imagen. El escenario en el que puede producirse un cambio de escala en tiempo de ejecución es si el usuario mueve la aplicación a un monitor diferente cuando hay más de uno disponible.

Si migras el código de la aplicación de Windows 8 a Windows 8.1 quizás quieras tener en cuenta este cambio de comportamiento, ya que da como resultado eventos ImageOpened o ImageFailed que se producen en tiempo de ejecución cuando se controla el cambio de escala, incluso en casos en los que el origen se establece en XAML. Además, si tenía código que controló PppChanged/LogicalDpiChanged y restablece los recursos, debe examinar si ese código sigue siendo necesario dada la nueva Windows 8.1 comportamiento de recarga automática.

Las aplicaciones compiladas para Windows 8 que se ejecuten en Windows 8.1 siguen usando el comportamiento de Windows 8.

Se aplica a