Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O .NET Framework oferece suporte para controles de renderização e outros elementos de interface do usuário do Windows usando estilos visuais em sistemas operacionais que dão suporte a eles. Este tópico discute os vários níveis de suporte no .NET Framework para controles de renderização e outros elementos de interface do usuário com o estilo visual atual do sistema operacional.
Classes de renderização para controles comuns
Renderizar um controle refere-se ao desenho da interface do usuário de um controle. O namespace System.Windows.Forms fornece a classe ControlPaint para renderizar alguns controles comuns do Windows Forms. No entanto, essa classe desenha controles no estilo clássico do Windows, o que pode dificultar a manutenção de uma experiência de interface do usuário consistente ao desenhar controles personalizados em aplicativos com estilos visuais habilitados.
O .NET Framework 2.0 inclui classes no namespace System.Windows.Forms que renderizam as partes e estados de controles comuns com estilos visuais. Cada uma dessas classes inclui métodos static para desenhar o controle ou partes do controle em um estado específico com o estilo visual atual do sistema operacional.
Algumas dessas classes são projetadas para desenhar o controle relacionado, independentemente de os estilos visuais estarem disponíveis. Se os estilos visuais estiverem habilitados, os membros da classe desenharão o controle relacionado com estilos visuais; se os estilos visuais estiverem desabilitados, os membros da classe desenharão o controle no estilo clássico do Windows. Essas classes incluem:
Outras classes só podem desenhar o controle relacionado quando os estilos visuais estão disponíveis. Seus membros lançarão uma exceção se os estilos visuais estiverem desabilitados. Essas classes incluem:
Para obter mais informações sobre como usar essas classes para desenhar um controle, consulte Como usar uma classe de renderização de controle.
Elemento de estilo visual e classes de renderização
O namespace System.Windows.Forms.VisualStyles inclui classes que podem ser usadas para desenhar e obter informações sobre qualquer controle ou elemento de interface do usuário compatível com estilos visuais. Os controles com suporte incluem controles comuns que têm uma classe de renderização no namespace System.Windows.Forms (consulte a seção anterior), bem como outros controles, como controles de tabulação e controles de barra. Outros elementos de interface do usuário com suporte incluem as partes do menu Iniciar, a barra de tarefas e a área não cliente do Windows.
As classes principais do namespace System.Windows.Forms.VisualStyles são VisualStyleElement e VisualStyleRenderer.
VisualStyleElement é uma classe fundamental para identificar qualquer elemento de controle ou interface do usuário compatível com estilos visuais. Além do VisualStyleElement propriamente dito, o namespace System.Windows.Forms.VisualStyles inclui muitas classes aninhadas de VisualStyleElement com propriedades static que retornam um VisualStyleElement para cada estado de um controle, parte de controle ou outro elemento de interface do usuário compatíveis com estilos visuais.
VisualStyleRenderer fornece os métodos que desenham e obtêm informações sobre cada VisualStyleElement definido pelo estilo visual atual do sistema operacional. As informações que podem ser recuperadas sobre um elemento incluem seu tamanho padrão, tipo de plano de fundo e definições de cores. VisualStyleRenderer encapsula a funcionalidade da API de estilos visuais (UxTheme) da parte do Shell do Windows do SDK da Plataforma Windows. Para obter mais informações, consulte Habilitando estilos visuais.
Para obter mais informações sobre como usar VisualStyleRenderer e VisualStyleElement, consulte Como renderizar um elemento de estilo visual.
Habilitando estilos visuais
Para habilitar estilos visuais para um aplicativo escrito para o .NET Framework versão 1.0, os programadores devem incluir um manifesto do aplicativo que especifica que ComCtl32.dll versão 6 ou posterior será usado para desenhar controles. Aplicativos criados com o .NET Framework versão 1.1 ou posterior podem usar o método Application.EnableVisualStyles da classe Application.
Verificando se há suporte a estilos visuais
A propriedade RenderWithVisualStyles da classe Application indica se o aplicativo atual está desenhando controles com estilos visuais. Ao pintar um controle personalizado, você pode verificar o valor de RenderWithVisualStyles para determinar se você deve renderizar seu controle com ou sem estilos visuais. A tabela a seguir lista as quatro condições que devem existir para RenderWithVisualStyles retornar true.
| Condição | Anotações |
|---|---|
| O sistema operacional dá suporte a estilos visuais. | Para verificar essa condição separadamente, use a propriedade IsSupportedByOS da classe VisualStyleInformation. |
| O usuário habilitou estilos visuais no sistema operacional. | Para verificar essa condição separadamente, use a propriedade IsEnabledByUser da classe VisualStyleInformation. |
| Os estilos visuais estão habilitados no aplicativo. | Os estilos visuais podem ser habilitados em um aplicativo chamando o método Application.EnableVisualStyles ou usando um manifesto do aplicativo que especifica que ComCtl32.dll versão 6 ou posterior será usado para desenhar controles. |
| Estilos visuais estão sendo usados para desenhar a área do cliente das janelas do aplicativo. | Para verificar essa condição separadamente, use a propriedade VisualStyleState da classe Application e verifique se ela tem o valor VisualStyleState.ClientAreaEnabled ou VisualStyleState.ClientAndNonClientAreasEnabled. |
Para determinar quando um usuário habilita ou desabilita estilos visuais ou alterna de um estilo visual para outro, verifique o valor de UserPreferenceCategory.VisualStyle nos manipuladores para os eventos SystemEvents.UserPreferenceChanging ou SystemEvents.UserPreferenceChanged.
Importante
Se você quiser usar VisualStyleRenderer para renderizar um controle ou elemento de interface do usuário quando o usuário habilitar ou alternar estilos visuais, certifique-se de fazer isso ao manipular o evento UserPreferenceChanged em vez do evento UserPreferenceChanging. Uma exceção será gerada se você usar a classe VisualStyleRenderer ao manipular UserPreferenceChanging.
Consulte também
.NET Desktop feedback