Udostępnij za pośrednictwem


Wskazówki: hosting formantu ActiveX w WPF

Aby umożliwić ulepszoną interakcję z przeglądarkami, możesz użyć kontrolek Microsoft ActiveX w aplikacji opartej na WPF. W tym przewodniku pokazano, jak można hostować Odtwarzacz multimedialny Windows firmy Microsoft jako kontrolkę na stronie WPF.

Zadania przedstawione w tym przewodniku obejmują:

  • Tworzenie projektu.

  • Tworzenie kontrolki ActiveX.

  • Hostowanie kontrolki ActiveX na stronie WPF.

Po ukończeniu tego przewodnika dowiesz się, jak używać kontrolek Microsoft ActiveX w aplikacji opartej na WPF.

Wymagania wstępne

Następujące składniki są wymagane do przeprowadzenia tego instruktażu:

  • Microsoft Odtwarzacz multimedialny Windows zainstalowany na komputerze, na którym zainstalowano program Visual Studio.

  • Visual Studio 2010.

Tworzenie projektu

Aby utworzyć i skonfigurować projekt

  1. Utwórz projekt aplikacji WPF o nazwie HostingAxInWpf.

  2. Dodaj projekt Biblioteka kontrolek formularzy systemu Windows do rozwiązania i nadaj projektowi WmpAxLibnazwę .

  3. W projekcie WmpAxLib dodaj odwołanie do zestawu Odtwarzacz multimedialny Windows o nazwie wmp.dll.

  4. Otwórz przybornik.

  5. Kliknij prawym przyciskiem myszy przybornik, a następnie kliknij polecenie Wybierz elementy.

  6. Kliknij kartę Składniki COM, wybierz kontrolkę Odtwarzacz multimedialny Windows, a następnie kliknij przycisk OK.

    Kontrolka Odtwarzacz multimedialny Windows jest dodawana do przybornika.

  7. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik UserControl1, a następnie kliknij polecenie Zmień nazwę.

  8. Zmień nazwę na WmpAxControl.vb lub WmpAxControl.cs, w zależności od języka.

  9. Jeśli zostanie wyświetlony monit o zmianę nazwy wszystkich odwołań, kliknij przycisk Tak.

Tworzenie kontrolki ActiveX

Program Visual Studio automatycznie generuje klasę AxHost otoki dla kontrolki Microsoft ActiveX po dodaniu kontrolki do powierzchni projektowej. Poniższa procedura tworzy zarządzany zestaw o nazwie AxInterop.WMPLib.dll.

Aby utworzyć kontrolkę ActiveX

  1. Otwórz plik WmpAxControl.vb lub WmpAxControl.cs w Projektant Windows Forms.

  2. Z przybornika dodaj kontrolkę Odtwarzacz multimedialny Windows do powierzchni projektowej.

  3. W okno Właściwości ustaw wartość właściwości kontrolki Dock Odtwarzacz multimedialny Windows na Fillwartość .

  4. Skompiluj projekt biblioteki kontrolek WmpAxLib.

Hostowanie kontrolki ActiveX na stronie WPF

Aby hostować kontrolkę ActiveX

  1. W projekcie HostingAxInWpf dodaj odwołanie do wygenerowanego zestawu współdziałania ActiveX.

    Ten zestaw ma nazwę AxInterop.WMPLib.dll i został dodany do folderu Debug projektu WmpAxLib podczas importowania kontrolki Odtwarzacz multimedialny Windows.

  2. Dodaj odwołanie do zestawu WindowsFormsIntegration o nazwie WindowsFormsIntegration.dll.

  3. Dodaj odwołanie do zestawu Windows Forms o nazwie System.Windows.Forms.dll.

  4. Otwórz plik MainWindow.xaml w Projektant WPF.

  5. Nadaj elementowi Gridgrid1nazwę .

    <Grid Name="grid1">
        
    </Grid>
    
  6. W widoku projektu lub widoku XAML wybierz Window element.

  7. W okno Właściwości kliknij kartę Zdarzenia.

  8. Loaded Kliknij dwukrotnie zdarzenie.

  9. Wstaw następujący kod, aby obsłużyć Loaded zdarzenie.

    Ten kod tworzy wystąpienie kontrolki WindowsFormsHost i dodaje wystąpienie kontrolki AxWindowsMediaPlayer jako element podrzędny.

    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. Naciśnij klawisz F5, aby skompilować i uruchomić aplikację.

Zobacz też