Windows 10 или .NET 4.8 ломают изменения? Отключение «Фиксировать масштабирование для приложений» приводит к масштабированию Graphics.DrawImage в соответствии с настройками масштабирования пользователя - PullRequest
0 голосов
/ 18 октября 2019

У нас есть код, который создает изображения метафайлов путем создания нового метафайла, затем получения графического объекта из метафайла и последующего рисования в них материалов. Это прекрасно работает в течение многих лет. Но теперь он не работает, если пользователь отключил настройку «Исправить масштабирование для приложений» и у него есть масштабирование> = 150%.

Модное новое масштабирование с высоким разрешением, которое Windows теперь делает для уменьшения размытия текста, кажется,переходить к обычным графическим операциям, а не только к отображению на экране ...

Graphics.DrawImage (someOtherImage, 0, 0, someOtherImage.Width, someOtherImage.Height)

кажется масштабируемымдо того, что someOtherImage масштабируется пользователями перед его отрисовкой, так что вы получаете только верхний левый угол someOtherImage, отрисованный в метафайл.

Вы также можете получить этот эффект, закомментировав вызов SetProcessDPIAware () так, чтобы ваше приложениепохоже на DPI Unaware ... на ваши команды рисования Графика в метафайлы влияет настройка Scaling пользователя.

Казалось бы, это умный способ получить менее размытое масштабирование ... масштабирование в командах рисованияпоскольку рисунок происходит ... однако, они должны быть осторожны, чтобы делать это только для материала, который рисуетсяна экран, не все идет к графическому объекту! Похоже, что в большинстве случаев .NET 4.8 ошибается (иногда что-то получается неправильно; иногда нет).

Кто-нибудь знает, что на самом деле происходит под прикрытием приложений или приложений DPI Unaware? когда пользователь установил «Fix scaling for apps» установлен на «Off» ?? Предназначено ли это, чтобы повлиять на все использование объекта Graphics приложением? Если нет, то как они различают, какими графическими командами рисования манипулировать? Или есть какое-то другое объяснение того, почему наши изображения обрезаются на основе пользовательских настроек масштабирования, когда «Фиксировать масштабирование для приложений» отключено ??

...