Compartilhar via


Passo a passo: hospedando um controle ActiveX no WPF

Para habilitar a interação aprimorada com navegadores, você pode usar controles Do Microsoft ActiveX em seu aplicativo baseado em WPF. Este passo a passo demonstra como você pode hospedar o Microsoft Windows Media Player como um controle em uma página do WPF.

As tarefas ilustradas neste passo a passo incluem:

  • Criando o projeto.

  • Criando o controle ActiveX.

  • Hospedando o controle ActiveX em uma página do WPF.

Quando concluir este passo a passo, você entenderá como usar os controles do Microsoft ActiveX em seu aplicativo baseado em WPF.

Pré-requisitos

Você precisa dos seguintes componentes para concluir este passo a passo:

  • Microsoft Windows Media Player instalado no computador em que o Visual Studio está instalado.

  • Visual Studio 2010.

Criando o projeto

Para criar e configurar o projeto

  1. Criar um projeto de aplicativo WPF chamado HostingAxInWpf.

  2. Adicione um projeto da Biblioteca de Controle do Windows Forms à solução e nomeie o projeto WmpAxLib.

  3. No projeto WmpAxLib, adicione uma referência ao assembly do Windows Media Player, que é denominado wmp.dll.

  4. Abra a caixa de ferramentas .

  5. Clique com o botão direito do mouse na caixa de ferramentase clique em Escolher itens.

  6. Clique na guia componentes COM, selecione o controle do Windows Media Player e clique em OK.

    O controle Windows Media Player é adicionado à Caixa de Ferramentas .

  7. No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo UserControl1 e clique em Renomear.

  8. Altere o nome para WmpAxControl.vb ou WmpAxControl.cs, dependendo do idioma.

  9. Se for solicitado que você renomeie todas as referências, clique em Sim.

Criando o controle ActiveX

O Visual Studio gera automaticamente uma classe de wrapper AxHost para um controle Microsoft ActiveX quando o controle é adicionado a uma superfície de design. O procedimento a seguir cria um assembly gerenciado, que recebe o nome de AxInterop.WMPLib.dll.

Para criar o controle ActiveX

  1. Abra WmpAxControl.vb ou WmpAxControl.cs no Designer de Formulários do Windows.

  2. Na caixa de ferramentas , adicione o controle Windows Media Player à superfície de design.

  3. Na janela Propriedades, defina o valor da propriedade Dock do controle do Windows Media Player como Fill.

  4. Crie o projeto da biblioteca de controle WmpAxLib.

Hospedando o controle ActiveX em uma página do WPF

Para hospedar o controle ActiveX

  1. No projeto HostingAxInWpf, adicione uma referência ao assembly de interoperabilidade do ActiveX gerado.

    Esse assembly é nomeado AxInterop.WMPLib.dll e foi adicionado à pasta Debug do projeto WmpAxLib quando você importou o controle do Windows Media Player.

  2. Adicione uma referência ao assembly WindowsFormsIntegration, que é denominado WindowsFormsIntegration.dll.

  3. Adicione uma referência ao assembly do Windows Forms, que é denominado System.Windows.Forms.dll.

  4. Abra MainWindow.xaml no Designer do WPF.

  5. Nomeie o elemento Gridgrid1.

    <Grid Name="grid1">
        
    </Grid>
    
  6. No modo design ou exibição XAML, selecione o elemento Window.

  7. Na janela Propriedades, clique na guia Eventos.

  8. Clique duas vezes no evento Loaded.

  9. Insira o código a seguir para manipular o evento Loaded.

    Esse código cria uma instância do controle WindowsFormsHost e adiciona uma instância do controle AxWindowsMediaPlayer como seu filho.

    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        // Create the interop host control.
        System.Windows.Forms.Integration.WindowsFormsHost host =
            new System.Windows.Forms.Integration.WindowsFormsHost();
    
        // Create the ActiveX control.
        WmpAxLib.AxWindowsMediaPlayer axWmp = new WmpAxLib.AxWindowsMediaPlayer();
    
        // Assign the ActiveX control as the host control's child.
        host.Child = axWmp;
    
        // Add the interop host control to the Grid
        // control's collection of child controls.
        this.grid1.Children.Add(host);
    
        // Play a .wav file with the ActiveX control.
        axWmp.URL = @"C:\Windows\Media\tada.wav";
    }
    
    Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
    
        ' Create the interop host control.
        Dim host As New System.Windows.Forms.Integration.WindowsFormsHost()
    
        ' Create the ActiveX control.
        Dim axWmp As New AxWMPLib.AxWindowsMediaPlayer()
    
        ' Assign the ActiveX control as the host control's child.
        host.Child = axWmp
    
        ' Add the interop host control to the Grid
        ' control's collection of child controls.
        Me.grid1.Children.Add(host)
    
        ' Play a .wav file with the ActiveX control.
        axWmp.URL = "C:\Windows\Media\tada.wav"
    
    End Sub
    
  10. Pressione F5 para compilar e executar o aplicativo.

Consulte também