Partilhar via


Como: Ativar estilos visuais em um aplicativo híbrido

Este tópico mostra como ativar estilos visuais de Microsoft Windows XP em um controle Windows Forms hospedado em um aplicativo com base em WPF.

Se seu aplicativo chama o método EnableVisualStyles, a maioria dos seus controles Windows Forms usará automaticamente estilos visuais quando seu aplicativo for executado no Microsoft Windows XP. Para obter mais informações, consulte Processamento de controles com estilos visuais.

Para uma listagem de código completa de todas tarefas ilustradas neste tópico, consulte Ativar estilos visuais em um exemplo de aplicativo híbrido.

ObservaçãoObservação:

As caixas de diálogo e comandos de menu que você vê podem diferir das descritas no Help, dependendo de suas configurações ativas ou de edição. Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu.

Ativando Estilos Visuais Windows Forms

Para ativar estilos visuais Windows Forms

  1. Criar um projeto de aplicativo WPF chamado HostingWfWithVisualStyles.

  2. No Solution Explorer, acrescente uma referência ao assembly WindowsFormsIntegration, que é chamado WindowsFormsIntegration.dll.

    O local padrão para esse arquivo é %programfiles%\Reference Assemblies\Microsoft\Framework\v3.0\WindowsFormsIntegration.dll.

  3. No Solution Explorer, acrescente uma referência ao assembly Windows Forms, que é chamado System.Windows.Forms.dll.

  4. Na caixa de ferramentas, clique duas vezes no ícone Grid para colocar um elemento Grid sobre a superfície de desenho.

  5. Na janela Propriedades, defina os valores das propriedades Height e Width como Auto.

  6. No Editor de Código, abra Window1.xaml.

  7. Insira o seguinte código para anexar um manipulador de eventos para o evento Loaded.

    <Window x:Class="Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingWfWithVisualStyles" Height="300" Width="300"
        Loaded="WindowLoaded"
        >
    
    <Window x:Class="HostingWfWithVisualStyles.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        Title="HostingWfWithVisualStyles" Height="300" Width="300"
        Loaded="WindowLoaded"
        >
    
  8. No Editor de Código, abra Window1.xaml.cs.

  9. Insira o seguinte código para tratar o evento Loaded.

    Private Sub WindowLoaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
        ' Comment out the following line to disable visual
        ' styles for the hosted Windows Forms control.
        System.Windows.Forms.Application.EnableVisualStyles()
    
        ' Create a WindowsFormsHost element to host
        ' the Windows Forms control.
        Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
        ' Create a Windows Forms tab control.
        Dim tc As New System.Windows.Forms.TabControl()
        tc.TabPages.Add("Tab1")
        tc.TabPages.Add("Tab2")
    
        ' Assign the Windows Forms tab control as the hosted control.
        host.Child = tc
    
        ' Assign the host element to the parent Grid element.
        Me.grid1.Children.Add(host)
    
    End Sub
    
    private void WindowLoaded(object sender, RoutedEventArgs e)
    {
        // Comment out the following line to disable visual
        // styles for the hosted Windows Forms control.
        System.Windows.Forms.Application.EnableVisualStyles();
    
        // Create a WindowsFormsHost element to host
        // the Windows Forms control.
        System.Windows.Forms.Integration.WindowsFormsHost host = 
            new System.Windows.Forms.Integration.WindowsFormsHost();
    
        // Create a Windows Forms tab control.
        System.Windows.Forms.TabControl tc = new System.Windows.Forms.TabControl();
        tc.TabPages.Add("Tab1");
        tc.TabPages.Add("Tab2");
    
        // Assign the Windows Forms tab control as the hosted control.
        host.Child = tc;
    
        // Assign the host element to the parent Grid element.
        this.grid1.Children.Add(host);
    }
    
  10. Pressione F5 para criar e executar o aplicativo.

    O controle Windows Forms é pintado com estilos visuais.

Desativando Estilos Visuais Windows Forms

Para desativar estilos visuais, simplesmente remova a chamada ao método EnableVisualStyles.

Para desativar estilos visuais Windows Forms

  1. No Editor de Código, abra Window1.xaml.cs.

  2. Comente a chamada ao método EnableVisualStyles.

  3. Pressione F5 para criar e executar o aplicativo.

    O controle Windows Forms é pintado com o estilo padrão do sistema.

Consulte também

Tarefas

Demonstra Passo a passo: Hospedagem de um controle de formulários do Windows no Windows Presentation Foundation

Conceitos

Processamento de controles com estilos visuais

Referência

EnableVisualStyles

System.Windows.Forms.VisualStyles

WindowsFormsHost

Outros recursos

Tópicos de "Como Fazer" migração e interoperabilidade