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
Utwórz projekt aplikacji WPF o nazwie
HostingAxInWpf
.Dodaj projekt Biblioteka kontrolek formularzy systemu Windows do rozwiązania i nadaj projektowi
WmpAxLib
nazwę .W projekcie WmpAxLib dodaj odwołanie do zestawu Odtwarzacz multimedialny Windows o nazwie wmp.dll.
Otwórz przybornik.
Kliknij prawym przyciskiem myszy przybornik, a następnie kliknij polecenie Wybierz elementy.
Kliknij kartę Składniki COM, wybierz kontrolkę Odtwarzacz multimedialny Windows, a następnie kliknij przycisk OK.
Kontrolka Odtwarzacz multimedialny Windows jest dodawana do przybornika.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy plik UserControl1, a następnie kliknij polecenie Zmień nazwę.
Zmień nazwę na
WmpAxControl.vb
lubWmpAxControl.cs
, w zależności od języka.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
Otwórz plik WmpAxControl.vb lub WmpAxControl.cs w Projektant Windows Forms.
Z przybornika dodaj kontrolkę Odtwarzacz multimedialny Windows do powierzchni projektowej.
W okno Właściwości ustaw wartość właściwości kontrolki Dock Odtwarzacz multimedialny Windows na Fillwartość .
Skompiluj projekt biblioteki kontrolek WmpAxLib.
Hostowanie kontrolki ActiveX na stronie WPF
Aby hostować kontrolkę ActiveX
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.
Dodaj odwołanie do zestawu WindowsFormsIntegration o nazwie WindowsFormsIntegration.dll.
Dodaj odwołanie do zestawu Windows Forms o nazwie System.Windows.Forms.dll.
Otwórz plik MainWindow.xaml w Projektant WPF.
Nadaj elementowi Grid
grid1
nazwę .<Grid Name="grid1"> </Grid>
W widoku projektu lub widoku XAML wybierz Window element.
W okno Właściwości kliknij kartę Zdarzenia.
Loaded Kliknij dwukrotnie zdarzenie.
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
Naciśnij klawisz F5, aby skompilować i uruchomić aplikację.
Zobacz też
.NET Desktop feedback
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla