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, чтобы узнать, когда растровое изображение доступно.

Другие вопросы по тегам