Controles de processamento com estilos visuais

O .NET Framework fornece suporte para controles de processamento e de outros usuários do Windows usando os estilos visuais em sistemas operacionais que lhes dão suporte de elementos de interface (UI). Este tópico discute os diversos níveis de suporte a .NET Framework para processar controles e outros elementos de interface do usuário com o estilo visual atual do sistema operacional.

Classes de processamento para os controles comuns

Processamento de um controle refere-se a interface do usuário de um controle de desenho. O System.Windows.Forms namespace fornece a ControlPaint classe para processar alguns controles Windows Forms comuns. No entanto, essa classe desenha controles no estilo clássico do Windows, que pode tornar difícil manter uma experiência consistente de interface do usuário quando o desenho controles personalizados em aplicativos com estilos visuais habilitado.

O .NET Framework 2.0 inclui classes de System.Windows.Forms namespace que processam as partes e os estados dos controles comuns com estilos visual. Cada uma dessas classes inclui static métodos para desenhar o controle ou a partes do controle em um estado particular com o estilo visual atual do sistema operacional.

Algumas dessas classes são projetadas para desenhar o controle relacionado independentemente, por exemplo, se os estilos visuais estão disponíveis. Se os estilos visuais estiverem ativados, os membros da classe desenhará o controle relacionado com estilos visuais; Se os estilos visuais são desativados, os membros da classe desenhará o controle no estilo clássico do Windows. Essas classes incluem:

Outras classes só podem desenhar o controle relacionado quando estilos visuais estão disponíveis e seus membros lançará uma exceção se os estilos visuais são desativados. Essas classes incluem:

Para obter mais informações sobre como usar essas classes para desenhar um controle, consulte Como: Usar um controle de classe de processamento..

Elemento de estilo visual e Classes de processamento.

O System.Windows.Forms.VisualStyles namespace inclui classes que podem ser usados para desenhar e obter informações sobre qualquer controle ou elemento de interface do usuário que é suportado pelo visual estilos. Controles com suporte incluem controles comuns que possuem uma classe de renderização na System.Windows.Forms namespace (consulte a seção anterior), bem como outros controles, como, por exemplo, os controles de guia e controles de rebar. Outros elementos de interface do usuário com suporte incluem as partes a Iniciar menu, barra de tarefas e a área não cliente do windows.

As principais classes da System.Windows.Forms.VisualStyles espaço para nome são VisualStyleElement e VisualStyleRenderer. VisualStyleElementé uma classe base para identificar qualquer elemento de interface de usuário ou controle suportado pelo estilos visuais. Além dos VisualStyleElement , o System.Windows.Forms.VisualStyles namespace inclui muitas classes aninhadas do VisualStyleElement com static Propriedades que retornam um VisualStyleElement para cada estado de um controle, parte do controle ou outro elemento de interface do usuário suportado pelo visual estilos.

VisualStyleRendererfornece os métodos que desenhar e obtém informações sobre cada VisualStyleElement definida pelo estilo visual atual do sistema operacional. Informações que podem ser recuperadas sobre um elemento incluem seu tamanho padrão, o tipo de plano de fundo e definições de cores. VisualStyleRendererencapsula a funcionalidade do que os estilos visuais (UxTheme) API da parte do Shell do Windows do Windows Platform SDK. Para obter mais informações, consulte "Using Windows xp Visual Styles" na parte da plataforma SDK a Biblioteca MSDN em https://msdn.microsoft.com/library.

Para obter mais informações sobre como usar o VisualStyleRenderer e VisualStyleElement, consulte Como: Processam um elemento de estilo Visual.

Enabling Visual Styles

Para habilitar estilos visuais para um aplicativo escrito para o .NET Framework versão 1.0, os programadores devem incluir a um manifesto de aplicativo que especifica que o Comctl32. dll versão 6 ou posterior será usado para desenhar controles. Os aplicativos criados com o .NET Framework versão 1.1 ou posterior pode usar o Application.EnableVisualStyles método o Application classe.

Verificando o suporte Visual de estilos

O RenderWithVisualStyles propriedade da Application classe indica se o aplicativo atual é desenhar controles com estilos visual. Ao pintar um controle personalizado, você pode verificar o valor de RenderWithVisualStyles para determinar se deve processar o seu controle, com ou sem estilos visual. A tabela a seguir lista as quatro condições que devem existir para RenderWithVisualStyles para retornar true.

Condição

Anotações

O sistema operacional suporta estilos visuais.

Para verificar essa condição separadamente, use o IsSupportedByOS propriedade da VisualStyleInformation classe.

O usuário ativou estilos visuais no sistema operacional.

Para verificar essa condição separadamente, use o IsEnabledByUser propriedade da VisualStyleInformation classe.

Estilos visuais são ativados no aplicativo.

Estilos visuais podem ser habilitados em um aplicativo chamando o Application.EnableVisualStyles método ou usando um aplicativo manifesto Especifica que a Comctl32. dll versão 6 ou posterior será usado para desenhar controles.

Estilos visuais estão sendo usados para desenhar a área do cliente do windows do aplicativo.

Para verificar essa condição separadamente, use o VisualStyleState propriedade da Application de classe e verifique se ele tem o valor VisualStyleState.ClientAreaEnabled ou VisualStyleState.ClientAndNonClientAreasEnabled.

Para determinar quando um usuário ativa ou desativa os estilos visuais ou alterna de um estilo visual para outra, verifique o UserPreferenceCategory.VisualStyle valor nos manipuladores para o SystemEvents.UserPreferenceChanging ou SystemEvents.UserPreferenceChanged eventos.

Observação importanteImportante

Se você quiser usar VisualStyleRenderer para processar um controle ou elemento de interface do usuário quando o usuário ativa ou switches estilos visuais, certifique-se de que você faça isso quando estiver manipulando o UserPreferenceChanged evento em vez da UserPreferenceChanging de evento. Uma exceção será lançada se você usar o VisualStyleRenderer classe quando estiver manipulando UserPreferenceChanging.

Consulte também

Outros recursos

O processamento e a pintura de controle personalizada