Demonstra Passo a passo: Hospedagem de um controle ActiveX no Windows Presentation Foundation
Para permitir uma melhor interação com navegadores da Web, você pode usar controles Microsoft ActiveX em seu aplicativo baseado em WPF. Essa explicação passo a passo demonstra como você pode 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.
Para uma listagem de código completa das tarefas apresentadas neste passo a passo, veja Hospedagem de um Controlarar ActiveX no Windows Presentation Foundation Exemplo.
Quando você tiver concluído essa explicação passo a passo, você entenderá como usar controles Microsoft ActiveX em seu aplicativo baseado no 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
Criar um projeto de aplicativo WPF chamado HostingWfInWpf.
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.
No Solution Explorer, adicione uma referência ao conjunto de módulos (assembly) Microsoft Windows Media Player, que é chamado wmp.dll.
Abra a Caixa de Ferramentas .
Clique com o botão direito do mouse na Caixa de Ferramentas e em seguida, clique em Choose Items.
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 .
No Gerenciador de Soluções, clique com o botão direito do mouse em UserControl1.cs e em seguida, clique em Rename (Renomear).
Alterar o nome para WmpAxControl.cs ou WmpAxControl.vb , dependendo do idioma.
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
No Windows Forms Designer, abra WmpAxControl.
Da Caixa de Ferramentas , adicione o controle Microsoft Windows Media Player para o superfície de design.
Na janela Propriedades, defina o valor da propriedade Dock do controle Microsoft Windows Media Player para Fill.
Pressione F6 para criar a biblioteca de controle.
Hospedando o controle ActiveX em uma página Windows Presentation Foundation.
Para hospedar o controle ActiveX
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.
Adicione uma referência ao conjunto WindowsFormsIntegration, que é chamado WindowsFormsIntegration.dll.
Adicione uma referência ao conjunto de módulos (assembly) Windows Forms, que é chamado System.Windows.Forms.dll.
Abra o Window1.xaml e substitua o código gerado com o código a seguir.
<Window x:Class="Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="HostingAxInWpf" Loaded="WindowLoaded" > <Grid Name="grid1"> </Grid> </Window>
<Window x:Class="HostingAxInWpf.Window1" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="HostingAxInWpf" Loaded="WindowLoaded" > <Grid Name="grid1"> </Grid> </Window>
Abrir Window1.XAML.cs, e descomentar a definição do método WindowLoaded.
Insira o seguinte código para tratar 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 Sub WindowLoaded(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\Windows XP Startup.wav" End Sub
private void WindowLoaded(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\Windows XP Startup.wav"; }
Pressione F5 para criar e executar o aplicativo.
Consulte também
Tarefas
Hospedagem de um Controlarar ActiveX no Windows Presentation Foundation Exemplo
Conceitos
Demonstra Passo a passo: Hospedagem de um controle Windows Presentation Foundation no Windows Forms