WPF BitmapImage Ширина / Высота всегда 1? - PullRequest
3 голосов
/ 26 октября 2008

Я не понимаю ...

BitmapImage img = new BitmapImage(myUri);
Console.WriteLine("Width: {0}, Height: {1}", img.Width, img.Height);

Вывод: «Ширина: 1, Высота: 1».

Я пробовал PixelWidth / PixelHeight, я пытался вручную создать его с помощью BeginInit / EndInit, а также установить PreservePixelFormat ... ничего не работает.

(За исключением, еще более странного: это все часть процесса, когда пользователь нажимает кнопку, и некоторые изображения загружаются. Ну, секунда раз, когда нажимается эта кнопка, делает имеют не 1 ширину / высоту.)

1 Ответ

4 голосов
/ 26 октября 2008

В первый раз, когда пользователь нажимает кнопку, растровое изображение еще не было загружено - поэтому все, что вы с ним сделаете, приведет к появлению мусора (кроме его отображения, поскольку элемент управления Image знает, как с этим справиться).

Вы можете обработать событие BitmapImage.DownloadCompleted, чтобы узнать, когда растровое изображение доступно.

...