Нужно найти вас, если пользователь использует увеличенный размер шрифта 125% или 150% в win 7 - PullRequest
1 голос
/ 07 сентября 2011

Кто-нибудь знает, можно ли где-нибудь проверить этот параметр?

Ответы [ 2 ]

2 голосов
/ 07 сентября 2011

Вы можете прочитать Graphics.DpiX, чтобы различить это.

Умножьте Graphics.DpiX на 100 и разделите на 96, и вы получите масштабирование шрифта в процентах. Это верно, потому что 100% масштабирование шрифта равно 96dpi.

Имейте в виду, что если ваше приложение не помечено как DPI-осведомленное , то когда пользователь устанавливает масштабирование шрифта на 150%, свойство DpiX выдаст 96. Вне головы я не знаю помечены ли стандартные приложения WinForms как поддерживающие DPI.

0 голосов
/ 04 марта 2016

Если вы не используете C #, вам нужно сделать два шага, чтобы заставить это работать в Windows 7.

Сначала, сделайте ваше приложение поддерживающим DPI. Этот блог объясняет, как это сделать.Он включает в себя либо изменение манифеста приложения, либо вызов функции SetProcessDPIAware () (которая может существовать или не существовать).

Затем получите значения DPI X / Y с помощью GetDeviceCaps(hdc, LOGPIXELSX) иGetDeviceCaps(hdc, LOGPIXELSY), соответственно, как объяснено в этой статье MSDN .

У меня есть приложение, которое ранее не поддерживало DPI, но все еще не работало при использовании с масштабированием текста (как доступно вПанель управления Windows 7 «Дисплей»), и это заставило ее работать, не оказывая влияния на Windows 8 или новее.

...