Sie müssen gefunden werden, wenn der Benutzer in Win 7 eine vergrößerte Schriftgröße von 125% oder 150% verwendet
-
27-10-2019 - |
Frage
Weiß jemand, ob ich diesen Parameter irgendwo überprüfen kann?
Lösung
Sie können > Graphics.DpiX
, um dies zu erkennen.
Multiplizieren Sie Graphics.DpiX
mit 100 und dividieren Sie durch 96, und Sie erhalten die prozentuale Skalierung der Schriftarten.Dies ist richtig, da eine 100% ige Skalierung der Schriftarten 96 dpi entspricht.
Seien Sie gewarnt, wenn Ihre Anwendung nicht als markiert istDPI-fähig Wenn der Benutzer die Schriftartenskalierung auf 150% festlegt, meldet die DpiX
-Eigenschaft 96. Auf den ersten Blick weiß ich nicht, ob Standard-WinForms-Apps als DPI-fähig markiert sind oder nicht.
Andere Tipps
Wenn Sie C # nicht verwenden, müssen Sie zwei Schritte ausführen, damit dies unter Windows 7 funktioniert.
Machen Sie Ihre Anwendung zunächst DPI-fähig. In diesem Blog wird erklärt, wie das geht.Sie müssen entweder Ihr Anwendungsmanifest ändern oder SetProcessDPIAware () -Funktion (die möglicherweise vorhanden ist oder nicht).
Als Nächstes erhalten Sie die X / Y-DPI-Werte mit GetDeviceCaps(hdc, LOGPIXELSX)
bzw. GetDeviceCaps(hdc, LOGPIXELSY)
, wie unter dieser MSDN-Artikel .
Ich habe eine Anwendung, die zuvor nicht DPI-fähig war, aber bei Verwendung der Textskalierung (wie in der Windows 7-Systemsteuerung "Anzeige" verfügbar) immer noch fehlerhaft war. Dadurch funktionierte sie, ohne dass dies Auswirkungen auf Windows 8 hatteoder neuer.