ArgumentException не перехватывается при использовании BitmapImage.BeginInit () - PullRequest
0 голосов
/ 16 апреля 2011

Почему, когда возникает ArgumentException, поскольку image.jpg имеет недопустимый заголовок метаданных, первый пример перехватывает исключение, а второй - нет?

Пример 1:

try
{
Uri myUri = new Uri("http://example.com/image.jpg", UriKind.RelativeOrAbsolute);
JpegBitmapDecoder decoder2 = new JpegBitmapDecoder(myUri,
                             BitmapCreateOptions.PreservePixelFormat,
                             BitmapCacheOption.Default);
BitmapSource bitmapSource2 = decoder2.Frames[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

Пример 2:

try
{
BitmapImage src = new BitmapImage();
src.BeginInit();
src.UriSource = new Uri("http://example.com/image.jpg");
src.EndInit();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

1 Ответ

0 голосов
/ 16 апреля 2011

Может ожидаться, пока изображение не будет загружено, например, в качестве источника для Image элемента управления.

Возможно, это даст вам исключение, если вы добавите

src.CacheOption = BitmapCacheOption.OnLoad;

к вашим объявлениям.

...