Instruções passo a passo: hospedando um controle ActiveX no WPFWalkthrough: Hosting an ActiveX Control in WPF

Para permitir uma melhor interação com navegadores, você pode usar controles Microsoft ActiveXMicrosoft ActiveX nos seus aplicativos do WPFWPF.To enable improved interaction with browsers, you can use Microsoft ActiveXMicrosoft ActiveX controls in your WPFWPF-based application. Essa instrução passo a passo demonstra como você pode hospedar o Player de Mídia do Microsoft WindowsMicrosoft Windows Media Player como um controle em uma página WPFWPF.This walkthrough demonstrates how you can host the Player de Mídia do Microsoft WindowsMicrosoft Windows Media Player as a control on a WPFWPF page.

As tarefas ilustradas neste passo a passo incluem:Tasks illustrated in this walkthrough include:

  • Criar o projeto.Creating the project.

  • Criando o controle ActiveX.Creating the ActiveX control.

  • Hospedando o controle ActiveX em uma página do WPF.Hosting the ActiveX control on a WPF Page.

Quando concluir este passo a passo, você entenderá como usar controles Microsoft ActiveXMicrosoft ActiveX no seu aplicativo do WPFWPF.When you have completed this walkthrough, you will understand how to use Microsoft ActiveXMicrosoft ActiveX controls in your WPFWPF-based application.

Pré-requisitosPrerequisites

Você precisa dos seguintes componentes para concluir esta instrução passo a passo:You need the following components to complete this walkthrough:

  • Player de Mídia do Microsoft WindowsMicrosoft Windows Media Player instalado no computador no qual Visual StudioVisual Studio está instalado. installed on the computer where Visual StudioVisual Studio is installed.

  • Visual Studio 2010Visual Studio 2010..

Criando o ProjetoCreating the Project

Criar e configurar o projetoTo create and set up the project

  1. Crie um projeto de aplicativo WPF chamado HostingAxInWpf.Create a WPF Application project named HostingAxInWpf.

  2. Adicione um projeto de biblioteca de controle do Windows Forms à solução e nomeie-o como WmpAxLib.Add a Windows Forms Control Library project to the solution, and name the project WmpAxLib.

  3. No projeto WmpAxLib, adicione uma referência ao assembly do Windows Media Player, que é chamado wmp.dll.In the WmpAxLib project, add a reference to the Windows Media Player assembly, which is named wmp.dll.

  4. Abra a Caixa de Ferramentas.Open the Toolbox.

  5. Clique com o botão direito do mouse na Caixa de ferramentas e, em seguida, clique em Escolher Itens.Right-click in the Toolbox, and then click Choose Items.

  6. Clique na guia Componentes COM, selecione o controle Windows Media Player e, em seguida, clique em OK.Click the COM Components tab, select the Windows Media Player control, and then click OK.

    O controle do Windows Media Player é adicionado para à Caixa de ferramentas.The Windows Media Player control is added to the Toolbox.

  7. No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo UserControl1 e, em seguida, clique em Renomear.In Solution Explorer, right-click the UserControl1 file, and then click Rename.

  8. Altere o nome para WmpAxControl.vb ou WmpAxControl.cs, dependendo da linguagem.Change the name to WmpAxControl.vb or WmpAxControl.cs, depending on the language.

  9. Se for solicitado que você renomeie todas as referências, clique em Sim.If you are prompted to rename all references, click Yes.

Criando o controle ActiveXCreating the ActiveX Control

Microsoft Visual StudioMicrosoft Visual Studiogera automaticamente um AxHost classe wrapper para um Microsoft ActiveXMicrosoft ActiveX controlar quando o controle é adicionado a uma superfície de design. automatically generates an AxHost wrapper class for a Microsoft ActiveXMicrosoft ActiveX control when the control is added to a design surface. O procedimento a seguir cria um assembly gerenciado chamado AxInterop.WMPLib.dll.The following procedure creates a managed assembly named AxInterop.WMPLib.dll.

Criar o controle ActiveXTo create the ActiveX control

  1. Abra WmpAxControl.vb ou WmpAxControl.cs no Designer de Formulários do Windows.Open WmpAxControl.vb or WmpAxControl.cs in the Windows Forms Designer.

  2. Na Caixa de ferramentas, adicione o controle do Windows Media Player para a superfície de design.From the Toolbox, add the Windows Media Player control to the design surface.

  3. Na janela Propriedades, defina o valor do controle do Windows Media Player Dock propriedade Fill.In the Properties window, set the value of the Windows Media Player control's Dock property to Fill.

  4. Compile o projeto de biblioteca do controle WmpAxLib.Build the WmpAxLib control library project.

Hospedando o controle ActiveX em uma página do WPFHosting the ActiveX Control on a WPF Page

Hospedar o controle ActiveXTo host the ActiveX control

  1. No projeto HostingAxInWpf, adicione uma referência ao assembly de interoperabilidade ActiveXActiveX gerado.In the HostingAxInWpf project, add a reference to the generated ActiveXActiveX interoperability assembly.

    Esse assembly é chamado AxInterop.WMPLib.dll e foi adicionado à pasta Debug do projeto WmpAxLib quando você importou o controle do Windows Media Player.This assembly is named AxInterop.WMPLib.dll and was added to the Debug folder of the WmpAxLib project when you imported the Windows Media Player control.

  2. Adicione uma referência ao assembly WindowsFormsIntegration, que é chamado WindowsFormsIntegration.dll.Add a reference to the WindowsFormsIntegration assembly, which is named WindowsFormsIntegration.dll.

  3. Adicione uma referência ao assembly Windows FormsWindows Forms, que é chamado de System.Windows.Forms.dll.Add a reference to the Windows FormsWindows Forms assembly, which is named System.Windows.Forms.dll.

  4. Abra o MainWindow.xaml no WPF Designer.Open MainWindow.xaml in the WPF Designer.

  5. Nome do Grid elemento grid1.Name the Grid element grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  6. No modo de Design ou modo de exibição XAML, selecione o Window elemento.In Design view or XAML view, select the Window element.

  7. Na janela Propriedades, clique na guia Eventos.In the Properties window, click the Events tab.

  8. Clique duas vezes o Loaded evento.Double-click the Loaded event.

  9. Insira o seguinte código para manipular o Loaded evento.Insert the following code to handle the Loaded event.

    Esse código cria uma instância do WindowsFormsHost controlar e adiciona uma instância do AxWindowsMediaPlayer controle como seu filho.This code creates an instance of the WindowsFormsHost control and adds an instance of the AxWindowsMediaPlayer control as its child.

    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.
        AxWMPLib.AxWindowsMediaPlayer axWmp = 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.
        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.Press F5 to build and run the application.

Consulte tambémSee Also

ElementHost
WindowsFormsHost
Designer do WPFWPF Designer
Passo a passo: hospedando um controle composto do Windows Forms no WPFWalkthrough: Hosting a Windows Forms Composite Control in WPF
Instruções passo a passo: hospedando um controle de composição do WPF nos Windows FormsWalkthrough: Hosting a WPF Composite Control in Windows Forms