Sie müssen gefunden werden, wenn der Benutzer in Win 7 eine vergrößerte Schriftgröße von 125% oder 150% verwendet

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

Frage

Weiß jemand, ob ich diesen Parameter irgendwo überprüfen kann?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top