Элемент управления Image
WPF использует собственную подсистему «Windows Imaging» и Direct3D для выполнения всей своей грязной работы, поэтому при использовании с правильными параметрами он будет работать почти так же быстро, как и все, что вы найдете.
Я подозреваю, что проблема заключается в том, что ваши настройки заставляют Windows Imaging загружать изображение в полном разрешении, а затем Direct3D масштабировать его. Решение этой проблемы заключается в том, чтобы выполнить масштабирование при загрузке изображения, установив DecodePixelHeight
и DecodePixelWidth
на BitmapImage
, который вы используете в качестве ImageSource
.
Другой метод, который многие графические приложения используют для ускорения, - это предварительная загрузка изображений в фоновом режиме. Например, программа просмотра изображений Windows автоматически начинает загрузку следующего изображения, как только отображается текущее изображение.
Если вы предварительно загружаете изображения, рассмотрите возможность сделать это в отдельном потоке. Также убедитесь, что вы используете BitmapCacheOption.OnLoad
при создании BitmapImage
, иначе предварительная загрузка не произойдет (по умолчанию OnDemand
).