WPF BitmapImage Ширина / Высота всегда 1?
-
04-07-2019 - |
Вопрос
Я не понимаю ...
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, чтобы узнать, когда растровое изображение доступно.