WPF BitmapImage Ширина / Высота всегда 1?
Я не понимаю...
BitmapImage img = new BitmapImage(myUri);
Console.WriteLine("Width: {0}, Height: {1}", img.Width, img.Height);
Выход: "Ширина: 1, Высота: 1".
Я пробовал PixelWidth/PixelHeight, я пытался вручную создать его с BeginInit
/ EndInit
а также настройка PreservePixelFormat
... ничего не работает.
(За исключением, даже еще более странного: все это часть процесса, когда пользователь нажимает кнопку, и некоторые изображения загружаются. Что ж, при втором нажатии этой кнопки она имеет не 1 ширину / высоту.)
1 ответ
В первый раз, когда пользователь нажимает кнопку, растровое изображение еще не было загружено - поэтому все, что вы с ним сделаете, приведет к появлению мусора (кроме его отображения, потому что элемент управления Image знает, как с этим справиться).
Вы можете обработать событие BitmapImage.DownloadCompleted, чтобы узнать, когда растровое изображение доступно.