Necessidade de encontrá-lo se o usuário está usando ampliado o tamanho da fonte 125% ou 150% no win 7

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

Pergunta

Alguém sabe se eu posso verificar este parâmetro em qualquer lugar?

Foi útil?

Solução

Você pode ler Graphics.DpiX discernir isso.

Multiply Graphics.DpiX por 100 e dividir por 96 e você terá a escala de fonte percentual. Isso é verdade porque 100% da fonte de escala equivale a 96 dpi.

Esteja avisado que se o aplicativo não está marcado como DPI ciente em seguida, quando o usuário define font escala para 150% da propriedade DpiX irá relatar 96. em cima da minha cabeça, eu não sei se ou não WinForms padrão aplicativos são marcados como DPI consciência.

Outras dicas

Se você não estiver usando C #, você precisa fazer duas etapas para fazer este trabalho no Windows 7.

Em primeiro lugar, fazer a sua inscrição DPI-aware. Este blog explica como fazer isso. Trata-se quer modificar seu manifesto do aplicativo, ou chamar o SetProcessDPIAware () função (que pode ou não existir).

Em seguida, obter os valores X / Y dpi com GetDeviceCaps(hdc, LOGPIXELSX) e GetDeviceCaps(hdc, LOGPIXELSY), respectivamente, conforme explicado em este artigo MSDN .

Eu tenho um aplicativo que não foi previamente DPI consciente, mas ainda quebrou quando usado com escalonamento de texto (como disponível em "Display" do painel de controle do Windows 7), e isso tenho que trabalhar, embora não tenha efeito sobre o Windows 8 ou mais recente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top