Вопрос

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

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

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

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

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

Это было полезно?

Решение

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top