Подпишись на наш Twitter

Быть в курсе появления новых статей!

Зачастую когда вы задаете Stretch=None для контрола Image, вы можете получить сообщение, что изображение не может быть отображено в ожидаемом размере в пикселях для высоты/ширины. Это случается когда разрешение изображения (DPI) не совпадает с системным DPI.

В файле изображений (таких как .png или .jpg) содержится информация в пикселях о ширине/высоте. Файл изображения может также содержать информацию о DpiX и DpiY (разрешение). Эта информация о разрешении присутствует не во всех файлах.

WPF использует информацию о разрешении для расчета размера изображения в WPF Units как:

Ширина (в WPF Units) = (96 * ImageWidth) / ImageHorizontalDPI Высота (в WPF Units) = (96 * ImageHeight) / ImageVerticalDPI

Если нет инсформации о разрешении в файле, то WPF устанавливает его по умолчанию в 96 dpi.

WPF рассчитывает размер изображения в пикселях как:

Ширина (pixels) = Ширина (WPF Units) * (SystemDPI / 96) Высота (pixels) = Высота (WPF Units) * (SystemDPI / 96)

Оригинал: #277 – Images May Have Embedded DpiX and DpiY Information




Дата публикации: 15.04.2011 18:27

Ярлыки: Controls, Image, WPF, WPF Units