Событие ImageFailed BitmapImage и его объект исключения - PullRequest
0 голосов
/ 04 марта 2012
 var image = new BitmapImage();
     image.ImageFailed += (s, e) => {
       // ...
     };
     image.UriSource = new Uri("someurl", UriKind.Absolute);

В документации упоминается, что событие ImageFailed может быть вызвано:

  • Файл не найден.
  • Неправильный (нераспознанный или неподдерживаемый) формат файла.
  • Неизвестная ошибка декодирования формата файла после загрузки

Возможно ли определить, какое из этих условий вызвало его внутрисобытие?

1 Ответ

1 голос
/ 04 марта 2012

Да, поскольку аргументом события является ExceptionRoutedEventArgs со свойством ErrorException , в котором можно проверить следующие типы исключений:

  • SecurityException
  • FileNotFoundException
  • NotSupportedException
  • COMException

Читать подробности в MSDN

Пример:

var image = new BitmapImage();
image.ImageFailed += (s, e) => 
{
    if (e.ErrorException is FileNotFoundException)
         // File not found.
    else if (e.ErrorException is NotSupportedException)
        // Unknown file format decoding error after upload
    else
        // Really bad stuff happened!    
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...