Сделать приложение vb.net осведомленным о DPI

Мне нужно, чтобы мое приложение vb.net правильно масштабировалось при любых настройках DPI. В настоящее время он сбивается, если настройка отличается от стандартной.

Все, что я нашел, относится либо к С#, либо к более старым версиям VB, либо к Visual Studio Pro и несовместимо с версией, которую я использую.

Я на Visual Studio Express 2013.

Спасибо


person user2452250    schedule 16.04.2014    source источник


Ответы (1)


Взято из статьи Масштабирование WinForms при больших настройках DPI — возможно ли это вообще? на веб-странице Telerik

Объявление поддержки DPI выполняется в файле манифеста.
Вы можете использовать следующую разметку для установки флага dpiAware. Возможные значения: True для приложения с поддержкой DPI, False для приложения без поддержки DPI и True/PM для приложения с поддержкой DPI для каждого монитора.

<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>

Платформа WinForms имеет собственный механизм масштабирования, который вычисляет разницу в масштабировании между системой, в которой была разработана форма, и системой, в которой она работает. Затем он изменяет размер и расположение всех элементов управления в соответствии с вычисленным коэффициентом. Обратите внимание, что это масштабирование сработает только в том случае, если ваше приложение объявляет, что поддерживает DPI, в противном случае оно будет отображаться в песочнице с разрешением 96 DPI, и будет использоваться растровое масштабирование ОС.

person Matt Wilko    schedule 16.04.2014
comment
В связанной статье говорится: «...если у вас нет такого в вашем проекте, вы должны сначала добавить его...» Как именно мне это сделать в Visual Studio? - person PeterCo; 06.04.2019
comment
А как насчет true для EnableWindowsFormsHighDpiAutoResizing в файле app.config? - person PeterCo; 06.04.2019