Как программно активировать «отключить масштабирование дисплея при настройках с высоким разрешением»

Я разрабатываю приложение формы Windows с использованием С# в Visual Studio 2010. Я обнаружил, что это приложение масштабируется, если я использовал настройку отображения с высоким разрешением. Но если я активирую свойство файла «отключить масштабирование отображения при настройках с высоким разрешением» с помощью меню правой кнопки мыши в проводнике Windows, кажется, что оно не масштабируется.

Есть ли способ программно активировать «отключить масштабирование дисплея при настройках с высоким разрешением» в Visual Studion 2010 С# или более поздней версии?

Я попытался установить файл манифеста приложения, но еще не настроил его успешно.


person Shoji Urashita    schedule 18.08.2015    source источник
comment
Не уверен, какой ответ.   -  person Shoji Urashita    schedule 10.05.2016


Ответы (1)


Использование файла манифеста (app.manifest в проекте Visual C#) решило эту проблему для меня. Например:

<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
  <dpiAware>true</dpiAware>
</asmv3:windowsSettings>

Of course this should be inside your main "assembly" section.

P.S. Я проверил это при отладке GitExtensions.

П.П.С. Я понимаю, что вопрос старый, но может быть кому-то еще нужна информация.

Обновление: однако это может привести к автоматическому нежелательному изменению размеров компонентов в форме окна.

person Do-do-new    schedule 05.05.2016
comment
В Frameworks .NET Framework 4.6 и выше код автоматически генерируется в app.manifest. Он закомментирован, поэтому вам нужно раскомментировать его, но если у вас версия 4.6 и выше, вам также необходимо настроить app.Config, где вы устанавливаете для параметра «EnableWindowsFormsHighDpiAutoResizing» значение «true». - person amalgamate; 26.11.2019
comment
Кстати, использование этой техники для отключения масштабирования экрана было очень эффективным для меня. Чрезвычайно полезно при нацеливании на одно разрешение экрана. - person amalgamate; 26.11.2019