Partilhar via


Suporte a temas de alto contraste

Este tópico compara o suporte para temas de alto contraste no Windows 8 com o de versões anteriores do Windows e explica como dar suporte a temas de alto contraste em um aplicativo do Windows 8.

Inclui as seguintes seções.

Visão geral do suporte para temas de alto contraste

O Windows 7 e versões anteriores oferecem suporte a dois modelos de temas, incluindo o modelo clássico herdado do Windows e os estilos visuais atuais. O modelo clássico do Windows foi mantido através do Windows 7 principalmente para suportar os vários temas de alto contraste. No entanto, o modelo clássico do Windows tem uma série de desvantagens:

  • Não há suporte para temas que usam estilos visuais, como o Windows Aero. Os usuários de temas de alto contraste devem usar a interface do usuário clássica do Windows.
  • Não há suporte para recursos de interface do usuário que dependem do DWM (Desktop Window Manager) para serem executados, como visualizações em miniatura e a lupa de tela inteira que foi introduzida no Windows 7.
  • Os desenvolvedores devem manter dois caminhos de código separados para oferecer suporte a dois modelos de temas diferentes.

No Windows 8 e posterior, as seguintes alterações no modelo de temas abordam as desvantagens anteriores:

  • O modelo de tema clássico do Windows não é mais suportado, permitindo que os desenvolvedores mantenham apenas um caminho de código para aplicativos destinados apenas ao Windows 8.
  • Como os estilos visuais e o DWM estão ativados no Windows 8, os usuários de alto contraste têm acesso a recursos como visualizações de miniaturas e a lupa de tela inteira.
  • Os estilos visuais oferecem suporte à configuração das cores de vários elementos da interface do usuário, permitindo que os usuários de alto contraste personalizem a interface do usuário para acomodar necessidades e preferências individuais.
  • O Windows 8 inclui suporte de compatibilidade para aplicativos existentes projetados para usar temas de alto contraste com base no modelo de temas clássicos do Windows.

Suporte a temas de alto contraste no Windows 8 e posterior

No Windows 8, como os estilos visuais estão ativados no modo de alto contraste, o suporte a temas de alto contraste é simples, desde que você atenda às diretrizes a seguir.

  • Tamanhos de fonte e controle. Para garantir que sua interface do usuário esteja acessível a usuários com deficiências, defina tamanhos de fonte de acordo com as configurações de tema atuais. Defina o tamanho dos controles para ser pelo menos o tamanho padrão.
  • Cores. Evite usar cores codificadas. Em vez disso, use as cores do sistema porque elas são baseadas no tema atual. O uso de cores personalizadas pode interferir e substituir as cores nos temas de alto contraste.
  • Manifesto do aplicativo. Os aplicativos projetados para trabalhar com os novos temas de alto contraste devem ter uma seção de compatibilidade de aplicativos definida em seu manifesto que contenha os GUIDs de compatibilidade do Windows 8. Caso contrário, o Windows pressupõe que o aplicativo foi projetado para uma versão mais antiga do Windows e renderiza a interface do usuário do aplicativo simulando o modelo de tema clássico do Windows.

Adicionando uma seção de compatibilidade ao manifesto do aplicativo

Um manifesto de aplicativo é um arquivo XML que descreve os requisitos para um aplicativo. A seção de compatibilidade do manifesto identifica as versões do Windows suportadas pelo aplicativo. Os GUIDs a seguir são usados na seção de compatibilidade para identificar as várias versões do Windows.

Versão GUID
Windows Vista {e2011457-1546-43c5-a5fe-008deee3d3f0}
Windows 7 {35138b9a-5d96-4fbd-8e2d-a2440225f93a}
Windows 8 {4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}

 

A seção de compatibilidade pode especificar várias versões do Windows, mas cada uma deve estar contida em sua própria <supportedOS/> marca. O exemplo a seguir mostra um manifesto de aplicativo que especifica o Windows 7 e o Windows 8 na seção de compatibilidade:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
        <application>
            <!--The ID below indicates application support for Windows 8 -->
            <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>

            <!--The ID below indicates application support for Windows 7 -->
            <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
        </application>
    </compatibility>
</assembly>

Se um aplicativo não tiver um manifesto de compatibilidade, presume-se que ele seja um aplicativo do Windows Vista e não use controles temáticos na área do cliente quando um tema de alto contraste estiver ativo. Além disso, o comportamento de algumas funções de estilos visuais são afetados. Por exemplo, IsThemeActive, IsCompositionActive e IsAppThemed retornam FALSE, enquanto OpenThemeData e OpenThemeDataEx retornam um identificador NULL. Isso é para suporte de compatibilidade, de modo que os aplicativos criados antes do Windows 8 ainda possam renderizar sua interface do usuário na mesma aparência que o modo de alto contraste de versões anteriores do Windows onde os estilos visuais não estão disponíveis.

No Windows 8, o aplicativo ainda recebe os benefícios da composição da área de trabalho. Isso significa, por exemplo, que aplicativos de usabilidade, como a lupa de tela cheia, não dependem do status do manifesto de um aplicativo individual. O aplicativo de usabilidade continua a funcionar no modo de alto contraste com um aplicativo que não se identifica como compatível com o Windows 8 em seu manifesto.

As imagens a seguir mostram uma caixa de diálogo simples em alto contraste no Windows 7.

hig contrast dialog box

Esta imagem mostra a mesma caixa de diálogo em alto contraste no Windows 8, mas com a compatibilidade do Windows 7 especificada no manifesto do aplicativo:

w8 high contrast dialog box

Esta imagem mostra a mesma caixa de diálogo em alto contraste no Windows 8, com o Windows 8 especificado no manifesto do aplicativo:

w8 high contrast dialog with manifest

Detectando alto contraste em versões anteriores do Windows

Os aplicativos executados em versões anteriores do Windows não têm acesso aos novos temas de alto contraste. Se o aplicativo precisar ser executado em versões anteriores do , você deverá incluir suporte para renderizar sua interface do usuário em alto contraste no modelo de tema clássico do Windows. Seu aplicativo pode determinar se um tema de alto contraste está ativo chamando a função SystemParametersInfo com o sinalizador SPI_GETHIGHCONTRAST.

Habilitar estilos visuais

Estilos visuais