Como posso forçar um aplicativo a ser escalado em alta resolução?
-
Finja que existe um aplicativo, cujos desenvolvedores o manifestaram com alta percepção de dpi, quando na verdade não é. Como posso forçar o dimensionamento de dpi?
-
Imagine que há um aplicativo em que a Microsoft aplicou o shim de compatibilidade " HighDpiAware
", quando o aplicativo realmente não está. Como posso forçar o dimensionamento de dpi?
Como posso forçar o Windows a aplicar o escalonamento de dpi a um aplicativo?
Editar: o que é escalonamento de alta resolução?
Nem todos os usuários executam o Windows a 96 dpi. Nem todo botão deve ter 75x23 pixels, nem toda barra de ferramentas tem 25 pixels de altura, e nem todo glifo treeview é 16x16. Se o usuário tiver escolhido uma configuração de dpi diferente para o Windows, será necessário dimensionar tudo adequadamente.
O problema é que quase nenhum desenvolvedor faz seu trabalho manipulando bem as configurações de alta resolução. Na melhor das hipóteses, tudo vai ficar "do mesmo tamanho", o que significa que tudo parece pequenino . Na pior das hipóteses, os formulários são colocados 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 de desenvolvedores fazendo seu trabalho e agora estão no aplicativo. Eles dizem aos apps que o usuário está executando a 96 dpi. O Windows, em seguida, usa a placa de vídeo e a composição da área de trabalho para ampliar os formulários.
Pro: o conteúdo do formulário terá um bom tamanho legível.
Con: tudo ficará um pouco confuso.
Esse recurso de "escalonamento de alta intensidade de dpi" só funciona a critério do usuário e exige:
- Windows Vista ou mais recente
- Composição da área de trabalho a ser ativada
- o usuário deve desativar "Usar o escalonamento no estilo do Windows XP"
- o usuário não desabilitar o dimensionamento do seu aplicativo
Como desenvolvedor, você pode optar pelo escalonamento de alta intensidade de dpi. Se você se esforçou para escrever o seu aplicativo corretamente, e você sabe que você vai lidar com alta dpi corretamente. Você desativa esse escalonamento adicionando uma entrada de manifesto ao seu executável, declarando que está " com alta densidade de dpi ".
O tópico como faz com que seu aplicativo respeite as preferências do usuário (incluindo a face da fonte, o tamanho da fonte e a configuração de dpi) é uma pergunta para stack overflow
. Como é a sintaxe para a entrada do manifesto declarando sua " alta percepção de dpi ".
Esta pergunta, no superusuário , é como ignorar um desenvolvedor que foi em frente e adicionou uma entrada de manifesto ciente de alta dpi , quando na verdade o aplicativo não é alto-dpi ciente. Eles disseram ao Windows para desabilitar o dimensionamento, mas eles não testaram o aplicativo. Existe software disponível com uma entrada de manifesto "high-dpi aware", e agora o aplicativo não pode ser usado em "fontes grandes" (por exemplo, 120dpi).