Instruções passo a passo: hospedando um controle ActiveX no WPF
Para habilitar a interação aprimorada com navegadores, você pode usar controles 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 WPF.
As tarefas ilustradas neste passo a passo incluem:
Criação do projeto.
Criando o controle ActiveX.
Hospedando o controle ActiveX em uma página do WPF.
Depois de concluir este passo a passo, você entenderá como usar os controles ActiveX da Microsoft em seu aplicativo baseado em WPF.
Pré-requisitos
Você precisará dos seguintes componentes para concluir este passo a passo:
Microsoft Windows Media Player instalado no computador onde o Visual Studio está instalado.
Visual Studio 2010.
Criando o Projeto
Criar e configurar o projeto
Crie um projeto de aplicativo WPF chamado
HostingAxInWpf
.Adicione um projeto de biblioteca de controle do Windows Forms à solução e nomeie-o como
WmpAxLib
.No projeto WmpAxLib, adicione uma referência ao assembly do 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 Escolher Itens.
Clique na guia Componentes COM, selecione o controle Windows Media Player e, em seguida, clique em OK.
O controle do Windows Media Player é adicionado para à Caixa de ferramentas.
No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo UserControl1 e, em seguida, clique em Renomear.
Altere o nome para
WmpAxControl.vb
ouWmpAxControl.cs
, dependendo da linguagem.Se for solicitado que você renomeie todas as referências, clique em Sim.
Criando o controle ActiveX
Visual Studio gera automaticamente uma classe wrapper para um controle Microsoft ActiveX quando o controle é adicionado a uma AxHost superfície de design. O procedimento a seguir cria um assembly gerenciado chamado AxInterop.WMPLib.dll.
Criar o controle ActiveX
Abra WmpAxControl.vb ou WmpAxControl.cs no Designer de Formulários do Windows.
Na Caixa de ferramentas, adicione o controle do Windows Media Player para a superfície de design.
Na janela Propriedades, defina o valor da Dock propriedade do controle do Windows Media Player como Fill.
Compile o projeto de biblioteca do controle WmpAxLib.
Hospedando o controle ActiveX em uma página do WPF
Hospedar o controle ActiveX
No projeto HostingAxInWpf, adicione uma referência ao assembly de interoperabilidade ActiveX gerado.
Esse assembly é chamado AxInterop.WMPLib.dll e foi adicionado à pasta Debug do projeto WmpAxLib quando você importou o controle do Windows Media Player.
Adicione uma referência ao assembly WindowsFormsIntegration, que é chamado WindowsFormsIntegration.dll.
Adicione uma referência ao assembly do Windows Forms, chamado System.Windows.Forms.dll.
Abra o MainWindow.xaml no WPF Designer.
Nomeie o Grid elemento
grid1
.<Grid Name="grid1"> </Grid>
No modo Design ou no modo XAML, selecione o Window elemento .
Na janela Propriedades, clique na guia Eventos.
Clique duas vezes no Loaded evento.
Insira o código a seguir para manipular o Loaded evento.
Esse código cria uma instância do controle e adiciona uma instância do WindowsFormsHost
AxWindowsMediaPlayer
controle 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
Pressione F5 para compilar e executar o aplicativo.
Confira também
.NET Desktop feedback