Windows Dev Center

Oferecendo suporte a temas de alto contraste (XAML)

Procurando a versão para HTML/JavaScript deste tópico? Consulte Oferecendo suporte a temas de alto contraste (HTML).

Um aplicativo do Tempo de Execução do Windows em C++, C# ou Visual Basic dá suporte a temas de alto contraste por padrão. Quando o usuário decide que o sistema deve utilizar um tema de alto contraste das configurações de sistema ou ferramentas de acessibilidade, a estrutura usa automaticamente as cores e as configurações de estilo que produzem layout e renderização de alto contraste para controles e componentes na interface do usuário.

Esse suporte padrão baseia-se no uso de temas e modelos padrão. Esses temas e modelos fazem referência às cores do sistema como definições de recursos, e as origens de recurso são alteradas automaticamente quando o sistema usa um modo de alto contraste. No entanto, se você usar modelos, temas e estilos personalizados para o seu controle, tenha cuidado para não desabilitar o suporte interno a alto contraste. Se você usar um dos designers XAML do Microsoft Visual Studio para criar o estilo, o designer gerará um tema de alto contraste separado, juntamente com o tema principal, sempre que você definir um modelo que seja significativamente diferente do modelo padrão. Os dicionários de temas separados vão para a coleção ThemeDictionaries, uma propriedade dedicada de um elemento ResourceDictionary.

Para saber mais sobre temas e modelos de controle, veja Guia de início rápido: modelos de controle. Às vezes, é útil procurar controles específicos no dicionário de recursos XAML e ver como os temas são construídos e como fazem referência a recursos semelhantes, mas diferentes para cada configuração de alto contraste possível.

Detectando quando um tema de alto contraste está habilitado

Um aplicativo do Tempo de Execução do Windows pode usar membros da classe AccessibilitySettings para detectar as configurações atuais de temas de alto contraste. A propriedade HighContrast determina se um tema de alto contraste está selecionado no momento. Se HighContrast estiver definido como true, a próxima etapa será verificar o valor da propriedade HighContrastScheme para obter o nome do tema de alto contraste que será usado. "Branco em Alto Contraste" e "Preto em Alto Contraste" geralmente são valores para o HighContrastScheme ao qual seu código deve responder. As chaves do ResourceDictionary definidas por XAML não podem ter espaços, então as chaves desses temas no dicionário de recursos normalmente são "HighContrastWhite" e "HighContrastBlack", respectivamente. Você também deve ter lógica de fallback para um tema de alto contraste padrão caso o valor seja alguma outra cadeia de caracteres. A amostra de alto contraste XAML mostra tal lógica.

Observação  Certifique-se de chamar um construtor AccessibilitySettings de um escopo onde o aplicativo é inicializado e o conteúdo já está sendo exibido.

A partir do Windows 8.1, os aplicativos podem alternar o uso para valores de recursos de alto contraste durante sua execução. Isso funciona quando os recursos são solicitados pela extensão de marcação ThemeResource no XAML de estilo ou modelo. Todos os temas padrão (generic.xaml) usam a técnica ThemeResource, assim você consegue esse comportamento ao usar os temas de controle padrão. Os controles personalizados ou o estilo de controle personalizado fazem isso quando você utiliza essa técnica de recurso ThemeResource também em seus modelos e estilos personalizados. Porém, os aplicativos desenvolvidos para Windows 8 não recarregam os recursos automaticamente durante sua execução.

Comportamento do Windows 8

O Windows 8 não dava suporte à extensão de marcação ThemeResource, ela está disponível a partir do Windows 8.1. Além disso, o Windows 8 não dava suporte à alternância dinâmica dos recursos relacionados ao tema de um aplicativo do Tempo de Execução do Windows. O aplicativo tinha que ser reiniciado para selecionar a alteração de tema dos modelos e estilos XAML. Essa não é uma boa experiência de usuário, portanto, os aplicativos devem ser recompilados e visar o Windows 8.1 de forma que possam usar estilos com usos ThemeResource possam alternar dinamicamente os temas quando o usuário o faz. Os aplicativos que foram compilados para Windows 8 mas estão sendo executados no Windows 8.1 continuam a usar o comportamento do Windows 8.

Tópicos relacionados

Exemplo de configurações de contraste e de interface do usuário
Exemplo de acessibilidade XAML
Exemplo de alto contraste XAML
AccessibilitySettings

 

 

Mostrar:
© 2015 Microsoft