Besoin de vous trouver si l'utilisateur utilise la taille de police magnifié 125% ou 150% dans la victoire 7

StackOverflow https://stackoverflow.com/questions/7330058

Question

Quelqu'un sait si je peux vérifier ce paramètre ne importe où?

Était-ce utile?

La solution

Vous pouvez lire Graphics.DpiX discerner cela.

Multiplier Graphics.DpiX par 100 et diviser par 96 et vous aurez l'échelle de la police de pourcentage. Cela est vrai parce que 100% mise à l'échelle correspond à la police 96dpi.

Soyez averti que si votre demande est marqué comme conscient DPI alors lorsque les jeux d'échelle utilisateur la police à 150% la propriété DpiX rapportera 96. du haut de ma tête, je ne sais pas si les applications WinForms standard ou non sont marqués comme DPI au courant.

Autres conseils

Si vous ne l'utilisez C #, vous devez faire deux étapes pour faire ce travail dans Windows 7.

Tout d'abord, faites votre demande DPI-aware. Ce blog explique comment faire. Elle consiste à modifier soit votre manifeste d'application, ou en appelant le SetProcessDPIAware () fonction (qui peut ou peut ne pas exister).

Ensuite, obtenir les X / Y des valeurs DPI avec GetDeviceCaps(hdc, LOGPIXELSX) et GetDeviceCaps(hdc, LOGPIXELSY), respectivement, comme expliqué dans cet article MSDN .

J'ai une demande qui n'a pas été DPI au courant, mais encore éclaté lorsqu'il est utilisé avec l'échelle de texte (disponible dans le panneau de commande « Affichage » Windows 7), et cela a fonctionner, tout en ayant aucun effet sur Windows 8 ou plus récent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top