Devo trovarti se l'utente utilizza una dimensione del carattere ingrandita del 125% o del 150% in Win 7

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

Domanda

Qualcuno sa se posso controllare questo parametro ovunque?

È stato utile?

Soluzione

Puoi leggere Graphics.DpiX per discernere questo.

Moltiplica Graphics.DpiX per 100 e dividi per 96 e otterrai il ridimensionamento percentuale dei caratteri.Questo è vero perché il 100% di scala dei caratteri equivale a 96 dpi.

Tieni presente che se la tua applicazione non è contrassegnata come Rilevante DPI , quindi quando l'utente imposta il ridimensionamento dei caratteri al 150%, la proprietà DpiX riporterà 96. In alto non so se le app WinForms standard siano contrassegnate come sensibili ai DPI.

Altri suggerimenti

Se non stai utilizzando C #, devi eseguire due passaggi per farlo funzionare in Windows 7.

Innanzitutto, rendi la tua applicazione compatibile con DPI. Questo blog spiega come farlo.Implica la modifica del manifesto dell'applicazione o la chiamata a SetProcessDPIAware () (che può o non può esistere).

Successivamente, ottieni i valori DPI X / Y rispettivamente con GetDeviceCaps(hdc, LOGPIXELSX) e GetDeviceCaps(hdc, LOGPIXELSY), come spiegato in questo articolo MSDN .

Ho un'applicazione che in precedenza non era a conoscenza dei DPI, ma si è comunque guastata se utilizzata con il ridimensionamento del testo (come disponibile nel pannello di controllo "Schermo" di Windows 7) e questo l'ha fatta funzionare, senza avere alcun effetto su Windows 8o più recente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top