Forçando o dimensionamento DPI no estilo XP por meio de um aplicativo VB 2010?

1

Eu tenho um aplicativo em vb.net 2010. em uma máquina windows 7, a interface do usuário parece ok para até 120 dpi (125%) desde que o windows 7, por padrão, permite "xp style dpi scaling" para valores de dpi igual ou menor acima de 120. para valores de > 120 dpi, os objetos da UI ficam desalinhados e borrados, a menos que o usuário verifique manualmente (ative) a opção "xp style dpi scaling" nas configurações de exibição. pelo mesmo motivo, o ".DpiX" retorna o número correto para < = 120 dpi, enquanto retorna 96 para qualquer valor > 120 dpi, a menos que, novamente, eu ative manualmente essa opção.

Eu estou querendo saber se existe alguma maneira (por exemplo, através do manifesto) de forçar o Windows a usar a escala de dpi do estilo XP para cada valor de dpi?

    
por Ali 25.06.2013 / 21:35

1 resposta

0

Tente usar a seguinte configuração no seu manifesto

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

Se você deseja alterar as configurações do Windows, você terá que manipular a chave de registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontDPI .

Se o dimensionamento de fontes for crítico para seu aplicativo, considere renderizar seu próprio texto e dimensioná-lo usando ScaleTransform

    
por 25.06.2013 / 22:06