Procedura dettagliata: hosting di un controllo ActiveX in WPF
Per abilitare un'interazione migliorata con i browser, è possibile usare i controlli Microsoft ActiveX nell'applicazione basata su WPF. Questa procedura dettagliata illustra come ospitare microsoft Lettore multimediale Windows come controllo in una pagina WPF.
Le attività illustrate nella procedura dettagliata sono le seguenti:
Creazione del progetto.
Creazione del controllo ActiveX.
Hosting del controllo ActiveX in una pagina WPF.
Dopo aver completato questa procedura dettagliata, si apprenderà come usare i controlli Microsoft ActiveX nell'applicazione basata su WPF.
Prerequisiti
Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:
Microsoft Lettore multimediale Windows installato nel computer in cui è installato Visual Studio.
Visual Studio 2010.
Creazione del progetto
Per creare e impostare il progetto
Creare un progetto di applicazione WPF denominato
HostingAxInWpf
.Aggiungere un progetto libreria di controlli Windows Form alla soluzione e denominare il progetto
WmpAxLib
.Nel progetto WmpAxLib aggiungere un riferimento all'assembly Lettore multimediale Windows denominato wmp.dll.
Aprire la casella degli strumenti.
Fare clic con il pulsante destro del mouse nella casella degli strumenti e quindi scegliere Scegli elementi.
Fare clic sulla scheda Componenti COM, selezionare il controllo Lettore multimediale Windows e quindi fare clic su OK.
Il controllo Lettore multimediale Windows viene aggiunto alla casella degli strumenti.
In Esplora soluzioni fare clic con il pulsante destro del mouse sul file UserControl1 e quindi scegliere Rinomina.
Modificare il nome in
WmpAxControl.vb
oWmpAxControl.cs
, a seconda della lingua.Se viene richiesto di rinominare tutti i riferimenti, fare clic su Sì.
Creazione del controllo ActiveX
Visual Studio genera automaticamente una AxHost classe wrapper per un controllo Microsoft ActiveX quando il controllo viene aggiunto a un'area di progettazione. La procedura seguente crea un assembly gestito denominato AxInterop.WMPLib.dll.
Per creare il controllo ActiveX
Aprire WmpAxControl.vb o WmpAxControl.cs nella finestra di progettazione Windows Form.
Nella casella degli strumenti aggiungere il controllo Lettore multimediale Windows all'area di progettazione.
Nella Finestra Proprietà impostare il valore della proprietà del Dock controllo Lettore multimediale Windows su Fill.
Compilare il progetto di libreria di controlli WmpAxLib.
Hosting del controllo ActiveX in una pagina WPF
Per ospitare il controllo ActiveX
Nel progetto HostingAxInWpf aggiungere un riferimento all'assembly di interoperabilità ActiveX generato.
Questo assembly è denominato AxInterop.WMPLib.dll ed è stato aggiunto alla cartella Debug del progetto WmpAxLib quando è stato importato il controllo Lettore multimediale Windows.
Aggiungere un riferimento all'assembly WindowsFormsIntegration, denominato WindowsFormsIntegration.dll.
Aggiungere un riferimento all'assembly Windows Form denominato System.Windows.Forms.dll.
Aprire MainWindow.xaml nella finestra di progettazione WPF.
Denominare l'elemento Grid
grid1
.<Grid Name="grid1"> </Grid>
Nella visualizzazione Progettazione o nella visualizzazione XAML selezionare l'elemento Window .
Nella finestra Proprietà fare clic sulla scheda Eventi.
Fare doppio clic sull'evento Loaded .
Inserire il codice seguente per gestire l'evento Loaded .
Questo codice crea un'istanza del WindowsFormsHost controllo e aggiunge un'istanza del
AxWindowsMediaPlayer
controllo come figlio.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
Premere F5 per compilare ed eseguire l'applicazione.
Vedi anche
.NET Desktop feedback