Partilhar via


Demonstra Passo a passo: Hospedagem de um controle ActiveX no Windows Presentation Foundation por meio de XAML

Para permitir melhor interação com navegadores da Web, você pode usar controles Microsoft ActiveX em seu aplicativo baseado em WPF. Essa explicação demonstra passo a passo como você pode usar Extensible Application Markup Language (XAML) para hospedar o Microsoft Windows Media Player como um controle em uma página WPF.

Tarefas ilustradas nesta explicação passo a passo incluem:

  • Criando o projeto

  • Criando o controle ActiveX.

  • Hospedando o controle ActiveX em uma página Windows Presentation Foundation.

For a complete code listing of the tasks illustrated in this walkthrough, see Hospedagem de um Controlarar ActiveX no Windows Presentation Foundation usando o exemplo XAML.

Quando você tiver concluído essa explicação passo a passo, você entenderá como usar Extensible Application Markup Language (XAML) para hospedar controles ActiveX em seu aplicativo baseado em WPF.

Observação As caixas de diálogo e comandos de menu você vê podem diferir daqueles descritos na ajuda dependendo de suas configurações ativas ou versão. Para alterar as configurações, escolher Importar e exportar configurações on the Ferramentas menu. Para obter mais informações, consulte Configurações do Visual Studio.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

  • Microsoft Windows Media Player instalado no computador onde Visual Studio está instalado.

  • Visual Studio 2008.

Criando o projeto

Para criar e configurar o projeto

  1. Criar um projeto de aplicativo WPF chamado HostingWfInWpf.

  2. Adicione um projeto de biblioteca de controle do Windows Forms ao projeto do aplicativo e nomeie o projeto WmpAxLib. Para obter mais informações, consulte Caixa de Diálogo Add New Project.

  3. Em Gerenciador de Soluções, adicione uma referência ao conjunto de módulos (assembly) Microsoft Windows Media Player, que é chamado wmp.dll.

  4. Abra a Caixa de Ferramentas .

  5. Clique com o botão direito do mouse na Caixa de Ferramentas e em seguida, clique em Escolher itens.

  6. Clique na aba Componentes COM , selecione o controle Windows Media Player e em seguida, clique em OK para aceitar a seleção.

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

  7. No Gerenciador de Soluções, clique com o botão direito do mouse em UserControl1.cs e em seguida, clique em Rename (Renomear).

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

  9. Se você for solicitado a renomear todas as referências, clique em Sim .

Criando o controle ActiveX.

Microsoft Visual Studio gera automaticamente uma classe wrapper AxHost para um controle Microsoft ActiveX quando o controle é adicionado a uma superfície de design. O procedimento a seguir cria um conjunto de módulos (assembly) denominado AxInterop.WMPLib.dll gerenciado.

Para criar o controle ActiveX

  1. No Windows Forms Designer, abra WmpAxControl.

  2. Da Caixa de Ferramentas , adicione o controle Microsoft Windows Media Player para o superfície de design.

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

  4. Pressione F6 para criar a biblioteca de controle.

Hospedando o controle ActiveX em uma página Windows Presentation Foundation.

Para hospedar o controle ActiveX

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

    Este conjunto de módulos (assembly) é chamado AxInterop.WMPLib.dll e foi adicionado à pasta Debug do projeto WmpAxLib quando você importou o controle Microsoft Windows Media Player.

  2. Adicione uma referência ao conjunto WindowsFormsIntegration, que é chamado WindowsFormsIntegration.dll.

  3. Adicione uma referência ao conjunto de módulos (assembly) Windows Forms, que é chamado System.Windows.Forms.dll.

  4. Substitua o código em Window1.xaml.cs com o código a seguir.

    O mapeamento de namespace ax estabelece uma referência para o conjunto de módulos (assembly) AxInterop.WMPLib, que contém o controle AxWindowsMediaPlayer. A classe AxWindowsMediaPlayer é criada como um filho do controle WindowsFormsHost.

    <Window x:Class="HostingAxInWpfWithXaml.Window1"
        xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" 
        xmlns:ax="clr-namespace:AxWMPLib;assembly=AxInterop.WMPLib" 
        Title="HostingAxInWpfWithXaml"
          Loaded="WindowLoaded"
        >
    
      <Grid Name="grid1">
    
        <WindowsFormsHost Name="wfh">
          <ax:AxWindowsMediaPlayer x:Name="axWmp"/>
        </WindowsFormsHost>
    
      </Grid>
    
    </Window>
    
  5. Abrir Window1.XAML.cs, e descomentar a definição do método WindowLoaded.

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

    private void WindowLoaded(object sender, RoutedEventArgs e)
    {   
        // Get the AxHost wrapper from the WindowsFormsHost control.
        AxWMPLib.AxWindowsMediaPlayer axWmp =
            wfh.Child as AxWMPLib.AxWindowsMediaPlayer;
    
        // Play a .wav file with the ActiveX control.
        axWmp.URL = @"C:\WINDOWS\Media\Windows XP Startup.wav";
    }
    
  7. Pressione F5 para criar e executar o aplicativo.

Consulte também

Tarefas

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

Hospedagem de um Controlarar ActiveX no Windows Presentation Foundation usando o exemplo XAML

Conceitos

Demonstra Passo a passo: Hospedagem de um controle composto do Windows Forms no Windows Presentation Foundation

Demonstra Passo a passo: Hospedagem de um controle Windows Presentation Foundation no Windows Forms

Referência

ElementHost

WindowsFormsHost

Outros recursos

WPF Designer

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