Приложение DPI Aware в Windows XP - PullRequest
2 голосов
/ 07 февраля 2011

Я хочу, чтобы мой DPI приложения C # знал.В Windows API есть команда под названием SetProcessDPIAware (), но проблема в том, что она работает только в Windows Vista и более поздних версиях Windows, а не в XP.Как сделать так, чтобы элементы управления, кнопки и шрифты DPI знали, чтобы они отображались правильно, независимо от того, какая версия Windows используется?

Ответы [ 2 ]

6 голосов
/ 08 февраля 2011

Вызов SetProcessDPIAware не просто волшебным образом делает все, что DPI знает для вас;его цель - объявить Windows, что ваше приложение правильно написано для поддержки DPI.Кроме того, его использование не рекомендуется;вместо этого вы должны объявить осведомленность о DPI в своем манифесте.На MSDN есть целая статья .

2 голосов
/ 03 апреля 2011

См. Мой довольно подробный ответ о том, как заставить приложение отвечать на настройки DPI на этом вопросе StackOverflow .

Короткая версия заключается в том, что вы можете изменить AutoScaleMode всех форм наScaleMode.Dpi.

Но лучше оставить на ScaleMode.Font;шрифты увеличиваются с увеличением DPI.

...