Compartir a través de


Tutorial: Hospedaje de un control ActiveX en WPF

Para habilitar la interacción mejorada con los exploradores, puede usar controles Microsoft ActiveX en la aplicación basada en WPF. En este tutorial se muestra cómo puede hospedar el Reproductor de Microsoft Windows Media como control en una página de WPF.

Las tareas que se muestran en este tutorial incluyen:

  • Creación del proyecto.

  • Crear el control ActiveX.

  • Hospedar el control ActiveX en una página de WPF.

Cuando haya completado este tutorial, comprenderá cómo usar controles Microsoft ActiveX en la aplicación basada en WPF.

Prerrequisitos

Necesitará los componentes siguientes para completar este tutorial:

  • Microsoft Windows Media Player instalado en el equipo donde está instalado Visual Studio.

  • Visual Studio 2010.

Creación del proyecto

Para crear y configurar el proyecto

  1. Cree un proyecto de aplicación de WPF denominado HostingAxInWpf.

  2. Agregue un proyecto de biblioteca de controles de Windows Forms a la solución y asigne al proyecto WmpAxLibel nombre .

  3. En el proyecto WmpAxLib, agregue una referencia al ensamblado del Reproductor de Windows Media, denominado wmp.dll.

  4. Abra el Cuadro de herramientas.

  5. Haga clic con el botón derecho en el Cuadro de herramientas y, a continuación, haga clic en Elegir elementos.

  6. Haga clic en la pestaña Componentes COM , seleccione el control Reproductor de Windows Media y, a continuación, haga clic en Aceptar.

    El control Reproductor de Windows Media se agrega al Cuadro de herramientas.

  7. En el Explorador de soluciones, haga clic con el botón derecho en el archivo UserControl1 y, a continuación, haga clic en Cambiar nombre.

  8. Cambie el nombre a WmpAxControl.vb o WmpAxControl.cs, según el idioma.

  9. Si se le pide que cambie el nombre de todas las referencias, haga clic en .

Creación del control ActiveX

Visual Studio genera automáticamente una AxHost clase contenedora para un control Microsoft ActiveX cuando el control se agrega a una superficie de diseño. El procedimiento siguiente crea un ensamblado administrado denominado AxInterop.WMPLib.dll.

Para crear el control ActiveX

  1. Abra WmpAxControl.vb o WmpAxControl.cs en el Diseñador de Windows Forms.

  2. En el Cuadro de herramientas, agregue el control Windows Media Player a la superficie de diseño.

  3. En la ventana Propiedades, establezca el valor de la propiedad Dock del control del Reproductor de Windows Media a Fill.

  4. Compile el proyecto de biblioteca de controles WmpAxLib.

Hospedar el control ActiveX en una página de WPF

Para hospedar el control ActiveX

  1. En el proyecto HostingAxInWpf, agregue una referencia al ensamblado de interoperabilidad activeX generado.

    Este ensamblado se denomina AxInterop.WMPLib.dll y se agregó a la carpeta Debug del proyecto WmpAxLib al importar el control Reproductor de Windows Media.

  2. Agregue una referencia al ensamblado WindowsFormsIntegration, que se denomina WindowsFormsIntegration.dll.

  3. Agregue una referencia al ensamblado de Windows Forms, que se denomina System.Windows.Forms.dll.

  4. Abra MainWindow.xaml en WPF Designer.

  5. Asigne al elemento el Grid nombre grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  6. En la vista Diseño o la vista XAML, seleccione el elemento Window.

  7. En la ventana Propiedades, haga clic en la pestaña Eventos .

  8. Haga doble clic en el evento Loaded.

  9. Inserte el código siguiente para controlar el Loaded evento.

    Este código crea una instancia del WindowsFormsHost control y agrega una instancia del AxWindowsMediaPlayer control como elemento secundario.

    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
    
  10. Presione F5 para compilar y ejecutar la aplicación.

Consulte también