Controles de renderização com estilos visuais
The .NET Framework Fornece suporte para controles de renderização e Outros usuário do Windows elementos de interface (UI) 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 da interface do usuário com o estilo visual corrente do sistema operacional.
Classes de renderização para controles comuns
renderização um controle refere-se a interface de usuário de um controle de desenho.The System.Windows.Forms namespace Fornece o ControlPaint controles de Windows Forms classe para processar alguns comuns. No entanto, essa classe desenha controles no estilo clássico do Windows, que pode tornar difícil de manter uma experiência consistente de interface do usuário quando o desenho controles personalizados em aplicativos com estilos visuais habilitado.
The .NET Framework 2,0 inclui classes na System.Windows.Forms namespace que processam as partes e estados dos controles comuns com estilos visuais. Cada uma dessas classes inclui static métodos para desenhar o controle ou partes do controle em um estado particular com o estilo visual corrente do sistema operacional.
Algumas dessas classes são projetadas para desenhar o controle relacionado independentemente se os estilos visuais estão disponível.Se estilos visuais são ativados e, em seguida, os membros de classe desenhará o controle relacionado com estilos visuais; se estiverem estilos visuais desabilitado, e, em seguida, os membros de classe irão 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ível e seus membros lançará uma exceção se os estilos visuais estiverem desativados.Essas classes incluem:
Para obter mais informações sobre como usar essas classes para desenhar um controle, consulte Como: Usar um controle de renderização classe.
Elemento de estilo visual e classes de renderização
The System.Windows.Forms.VisualStyles namespace 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. Controles com suporte incluem sistema autônomo controles comuns que possuem uma classe de renderização no System.Windows.Forms namespace (consulte a seção anterior), bem sistema autônomo outros controles, sistema autônomo guia e sistema autônomo controles de rebar. Outros elementos da interface do usuário com suporte incluem as partes do Iniciar menu, barra de tarefas e área que não é destinada aos clientes do windows.
As classes principais do System.Windows.Forms.VisualStyles espaço para nome são VisualStyleElement e VisualStyleRenderer. VisualStyleElement é uma classe base para a identificação de qualquer elemento de interface de controle ou o usuário suportado pelo estilos visuais. Em adição a VisualStyleElement propriamente dito, 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 Outros elemento de interface do usuário suportados pelo estilos visuais.
VisualStyleRenderer Fornece métodos que desenhar e obter informações sobre cada VisualStyleElement definida pelo estilo visual corrente do sistema operacional. Informações que podem ser recuperadas sobre um elemento incluem seu dimensionar padrão, tipo de plano de fundo e definições de cores.VisualStyleRenderer Ajusta a funcionalidade dos estilos visuais (UxTheme) API da parte Windows Shell do Windows plataforma SDK. Para obter mais informações, consulte "Using Windows XP Visual Styles" na parte da biblioteca MSDN em plataforma SDKhttps://msdn.Microsoft.com/Library.
Para obter mais informações sobre como usar VisualStyleRenderer e VisualStyleElement, consulte Como: Processar 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 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 pode usar o Application.EnableVisualStyles método para o Application classe.
Verificando se há suporte visual de estilos
The RenderWithVisualStyles propriedade das Application classe indica se o aplicativo corrente é desenhar controles com estilos visuais. Ao pintar um controle personalizado, você pode verificar o valor de RenderWithVisualStyles para determinar se deve processar o controle com ou sem estilos visuais. A tabela a seguir lista as quatro condições que devem existir para RenderWithVisualStyles para retornar true.
Condição |
Anotações |
---|---|
O sistema operacional der suporte a estilos visuais. |
Para verificar essa condição separadamente, use o IsSupportedByOS propriedade das VisualStyleInformation classe. |
O usuário ativou estilos visuais do sistema operacional. |
Para verificar essa condição separadamente, use o IsEnabledByUser propriedade das VisualStyleInformation classe. |
Estilos visuais são ativados no aplicativo. |
Estilos visuais podem ser ativados em um aplicativo, chamando o Application.EnableVisualStyles método ou usando um aplicativo manifesto especifica que ComCtl32.dll versão 6 ou posterior será usado para desenhar controles. |
Estilos visuais estão sendo usados para desenhar a área de cliente janelas de aplicativos. |
Para verificar essa condição separadamente, use o VisualStyleState propriedade das Application 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 os SystemEvents.UserPreferenceChanging ou SystemEvents.UserPreferenceChanged eventos.
Observação importante: |
---|
Se você deseja 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 evento. Uma exceção será lançada se você usar o VisualStyleRenderer classe ao manipular UserPreferenceChanging. |