Начиная с .NET Framework 4.7, Windows Forms включает улучшения для общих сценариев с высоким и динамическим DPI. К ним относятся:
Улучшения в масштабировании и компоновке ряда элементов управления Windows Forms, таких как элемент управления MonthCalendar и элемент управления CheckedListBox.
Масштабирование за один проход. В .NET Framework 4.6 и более ранних версиях масштабирование выполнялось за несколько проходов, в результате чего некоторые элементы управления масштабировались больше, чем необходимо.
Поддержка динамических сценариев DPI, в которых пользователь изменяет DPI или масштабный коэффициентпосле запуска приложения Windows Forms.
В версиях .NET Framework, начиная с .NET Framework 4.7, расширенная поддержка с высоким разрешением является дополнительной функцией. Вы должны сконфигурировать свое приложение, чтобы использовать его преимущества.
Настройка приложения Windows Forms для поддержки высокого разрешения
Доступны новые функции Windows Forms, поддерживающие высокую осведомленность о DPIтолько в приложениях, предназначенных для .NET Framework 4.7 и работающих в операционных системах Windows, начиная с обновления для создателей Windows 10.
Кроме того, чтобы настроить поддержку высокого разрешения в приложении Windows Forms, необходимо выполнить следующие действия. :
Объявить совместимость с Windows 10.
Для этого добавьте в файл манифеста следующее:
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 compatibility -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
Включите поддержку DPI для каждого монитора в приложении. файл конфигурации.
В Windows Forms появился новый элемент для поддержки новых функций и настроек, добавленных начиная с .NET Framework 4.7. Чтобы воспользоваться новыми функциями, поддерживающими высокий DPI, добавьте в файл конфигурации приложения следующее:
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
Вызов статического метода EnableVisualStyles.
Это должен быть первый вызов метода вточка входа вашего приложения. Например:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2());
}
Отказ от отдельных функций с высоким DPI Установка значения DpiAwareness для PerMonitorV2 включает все функции с высоким уровнем DPI, поддерживаемые версиями .NET Framework, начиная с .NET Framework 4.7,Как правило, этого достаточно для большинства приложений Windows Forms. Однако вы можете отказаться от одной или нескольких отдельных функций. Наиболее важной причиной для этого является то, что существующий код приложения уже обрабатывает эту функцию. Например, если ваше приложение обрабатывает автоматическое масштабирование, вы можете отключить функцию автоматического изменения размера следующим образом:
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
<add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
</System.Windows.Forms.ApplicationConfigurationSection>
Для получения дополнительной справки, связанной с настройкой :: Read :: https://docs.microsoft.com/en-us/dotnet/framework/configure-apps/file-schema/winforms/windows-forms-add-configuration-element
Надеюсь, это сделает ваше приложение хорошо выглядящим !!