Как отключить поддержку высоких точек на дюйм в Windows 7?
У меня есть старое приложение, для которого я хочу использовать виртуализацию DPI в Windows 7 (также известную как размытое масштабирование форм). Чтобы попробовать это в примере проекта, я сделал следующее:
- включить отображение текста 125 % на компьютере с Windows 7
- отключил любой манифест для этого проекта
- читать
Monitor.PixelsPerInch
с результатом120
Я пытался кое-что, но я не смог получить результат 96
точек на дюйм здесь:
- используемый
<dpiAware>false</dpiAware>
во внутреннем или внешнем предоставленном манифесте - изменены настройки совместимости приложений
- изменена тема windows
Я также думал, что SetProcessDPIAware
называется где-то в VCL
, я нашел System.win.HighDpi
который содержит SetProcessDPIAware
в его блоке инициализации, но этот блок не включен в мой минимальный образец.
Образец манифеста (настройка dpiAware
похоже игнорируется)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">False</dpiAware>
</windowsSettings>
</application>
</assembly>