WPF не использует конкретные значения пикселей для размеров и позиционирования, поэтому он может хорошо масштабироваться с DPI.
Это может привести к проблеме, когда он пытается использовать позицию, которая не соответствуетдискретный экранный пиксель;некоторые пиксели изображения отображаются поверх нескольких пикселов на экране, которые мы видим как размытые.
UseLayoutRendering = true с SnapToDevicePixels = false, должно решить эту проблему.Вам также необходимо установить его на уровне главного окна, чтобы вычисления каскадно доходили до уровня изображения.
Вы можете попробовать это, создав простое приложение WPF с одним окном и ваши изображения.Установка поля изображения на что-то глупое (10.452, 0.736, 0, 0) приведет к размытию.Это прекращается, когда UseLayoutRendering = true на изображении.
Если после установки InitializeComponent () затем снова установить поле в конструкторе вашего окна, оно будет размытым независимо от того, установлено ли на изображении значение UseLayoutRendering = true, посколькуВычисления для выравнивания с пикселями на экране были сделаны до того, как вы переместили изображение в местоположение, которое не соответствует этим.
Я не совсем уверен, в чем разница между UseLayoutRendering и SnapToDevicePixels -Я думаю, что это просто время, когда расчеты сделаны.UseLayoutRendering, по-видимому, предпочтительнее для изображений.
Растяжение / сжатие изображения по сравнению с его исходным размером также может привести к проблемам размытия.