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
Criar um projeto de aplicativo WPF chamado
HostingAxInWpf
.Adicione um projeto da Biblioteca de Controle do Windows Forms à solução e nomeie o projeto
WmpAxLib
.No projeto WmpAxLib, adicione uma referência ao assembly do Windows Media Player, que é denominado wmp.dll.
Abra a caixa de ferramentas .
Clique com o botão direito do mouse na caixa de ferramentase clique em Escolher itens.
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 .
No Gerenciador de Soluções, clique com o botão direito do mouse no arquivo UserControl1 e clique em Renomear.
Altere o nome para
WmpAxControl.vb
ouWmpAxControl.cs
, dependendo do idioma.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
Abra WmpAxControl.vb ou WmpAxControl.cs no Designer de Formulários do Windows.
Na caixa de ferramentas , adicione o controle Windows Media Player à superfície de design.
Na janela Propriedades, defina o valor da propriedade Dock do controle do Windows Media Player como Fill.
Crie o projeto da biblioteca de controle WmpAxLib.
Hospedando o controle ActiveX em uma página do WPF
Para hospedar o controle ActiveX
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.
Adicione uma referência ao assembly WindowsFormsIntegration, que é denominado WindowsFormsIntegration.dll.
Adicione uma referência ao assembly do Windows Forms, que é denominado System.Windows.Forms.dll.
Abra MainWindow.xaml no Designer do WPF.
Nomeie o elemento Grid
grid1
.<Grid Name="grid1"> </Grid>
No modo design ou exibição XAML, selecione o elemento Window.
Na janela Propriedades, clique na guia Eventos.
Clique duas vezes no evento Loaded.
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
Pressione F5 para compilar e executar o aplicativo.
Consulte também
.NET Desktop feedback