1

У меня есть приложение на vb.net 2010. на компьютере с Windows 7 пользовательский интерфейс выглядит нормально с разрешением до 120 dpi (125%), поскольку по умолчанию в Windows 7 включено "масштабирование dpi в стиле xp" для значений dpi, равных или меньше 120. при значениях> 120 точек на дюйм объекты пользовательского интерфейса смещаются и становятся размытыми, если пользователь вручную не установит (не включит) параметр "масштабирование точек на дюйм в стиле xp" в настройках дисплея. по той же причине ".DpiX "возвращает правильное число для <= 120 точек на дюйм, а возвращает 96 для любого значения> 120 точек на дюйм, если, опять же, я вручную не включил эту опцию.

Мне интересно, есть ли способ *, например, через манифест), чтобы заставить Windows использовать масштабирование dpi в стиле XP для каждого значения dpi?

1 ответ1

0

Попробуйте использовать следующую настройку в вашем манифесте

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

Если вы хотите изменить настройки Windows, вам придется манипулировать ключом реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI .

Если масштабирование шрифта критично для вашего приложения, рассмотрите возможность рендеринга собственного текста и масштабируйте его с помощью ScaleTransform.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .