Como forçar um aplicativo a ser escalado em alta resolução?
Finja que existe um aplicativo cujos desenvolvedores o manifestaram como com reconhecimento de dpi alto, quando realmente não o é. Como forçar o dimensionamento de dpi?
Finja que existe um aplicativo que a Microsoft aplicou o
HighDpiAware
calço de compatibilidade " ", quando o aplicativo realmente não está. Como forçar o dimensionamento de dpi?
Como forçar o Windows a aplicar a escala de dpi a um aplicativo?
Edit: O que é escala de alta dpi?
Nem todos os usuários executam o Windows a 96dpi. Nem todo botão deve ter 75 x 23 pixels, nem toda barra de ferramentas tem 25 pixels de altura e nem todo glifo da visualização em árvores é 16 x 16. Se o usuário tiver escolhido uma configuração de dpi diferente para o Windows, você precisará dimensionar tudo adequadamente.
O problema é que quase nenhum desenvolvedor faz seu trabalho lidando bem com configurações de alta dpi. Na melhor das hipóteses, tudo permanecerá "do mesmo tamanho", o que significa que todos parecem minúsculos . Na pior das hipóteses, as formas são dispostas incorretamente, com o texto sendo cortado e os controles não visíveis.
Começando com o Windows Vista, e aproveitando o poder da composição da área de trabalho, a Microsoft desistiu dos desenvolvedores que estão fazendo seu trabalho e agora mentem para os aplicativos. Eles dizem aos aplicativos que o usuário está executando a 96dpi. O Windows usa a placa de vídeo e a Composição da área de trabalho para aumentar os formulários.
Pro: o conteúdo do formulário será um bom tamanho legível.
Contras: tudo ficará um pouco confuso.
Esse recurso de "alta escala de dpi" funciona apenas a critério do usuário e requer:
- Windows Vista ou mais recente
- Composição da área de trabalho a ser ativada
- o usuário desative "Usar escala de estilo do Windows XP"
- o usuário não desabilitar a escala para seu aplicativo
Como desenvolvedor, você pode optar por sair da escala de alta resolução; se você se esforçou para escrever seu aplicativo corretamente e sabe que lida com alta dpi corretamente. Você desabilita esse dimensionamento adicionando uma entrada de manifesto ao seu executável, declarando que tem " reconhecimento alto de dpi ".
O tópico de como fazer seu aplicativo respeitar as preferências do usuário (incluindo a face da fonte, o tamanho da fonte e a configuração de dpi) é uma questão para stack overflow
. Como é a sintaxe da entrada do manifesto que declara sua " conscientização de alta dpi ".
Esta pergunta, no superusuário , é como ignorar um desenvolvedor que seguiu em frente e adicionou uma entrada de manifesto com reconhecimento de dpi alta, quando, na verdade, o aplicativo não possui reconhecimento de dpi. Eles disseram ao Windows para desativar o dimensionamento, mas na verdade não testaram o aplicativo. Existem softwares disponíveis com uma entrada de manifesto com "reconhecimento alto de dpi" e agora o aplicativo não pode ser usado em "fontes grandes" (por exemplo, 120 dpi).