Выбрав метод getElementById()
, вы выбираете элемент целиком. Вы можете получить значение элемента input с атрибутом value
.
var a = document.getElementById('sea').value;
Проблемой была опция BitmapCacheOption, изменяясь на BitmapCacheOption. Работы OnLoad.
С BitmapCacheOption. Ни один BitmapSource не декодируется до изображения, не представляется, но поток с png в нем уже расположен в той точке. При кэшировании OnLoad он будет декодировать сразу же и кэшировать результаты, вместо того, чтобы пытаться декодировать позже, когда поток больше не будет существовать.
Кроме того, Вы попытались просто использовать BitmapImage для загрузки изображения? Это хорошо работает с PNG, BMP и JPEG.
Это - также специализированный тип BitmapSource, таким образом, Вы могли просто заменить свой код в Вашем свойстве с этим:
BitmapImage img = new BitmapImage(new Uri(@"C:\Temp\logo.png"));
return img;
Действительно ли Вы положительны, что это - PNG и не только переименованный Bitmap или Jpeg? Если Вы создаете новое Растровое изображение и затем просто переименовываете его и изменяете расширение файла, эта ошибка восстанавливаема.
Если я использую известный PNG с Вашим кодом, я не получаю Вашу проблему, но COM-исключение брошено:
Дескриптор недопустим. (Исключение из HRESULT: 0x80070006 (E_HANDLE))
Можно ли испытать его со случайным PNG от сети и видеть ли, получаете ли Вы тот же результат?