Пошаговое руководство. Размещение элемента управления ActiveX в приложении WPF

Чтобы обеспечить улучшенное взаимодействие с браузерами, вы можете использовать элементы управления Microsoft ActiveX в приложении на основе WPF. В этом пошаговом руководстве показано, как разместить проигрыватель Microsoft Windows Media в качестве элемента управления на странице WPF.

В данном пошаговом руководстве представлены следующие задачи.

  • Создание проекта.

  • Создание элемента управления ActiveX.

  • Размещение элемента управления ActiveX на странице WPF.

После выполнения этого пошагового руководства вы узнаете, как использовать элементы управления Microsoft ActiveX в приложении на основе WPF.

Необходимые компоненты

Для выполнения этого пошагового руководства требуются следующие компоненты:

  • Проигрыватель Microsoft Windows Media установлен на компьютере, на котором установлена среда Visual Studio.

  • Visual Studio 2010.

Создание проекта

Создание и настройка проекта

  1. Создайте проект приложения WPF с именем HostingAxInWpf.

  2. Добавьте в решение проект библиотеки управления Windows Forms и присвойте проекту имя WmpAxLib.

  3. В проекте WmpAxLib добавьте ссылку на сборку проигрывателя Windows Media с именем wmp.dll.

  4. Откройте Панель элементов.

  5. Щелкните правой кнопкой мыши Панель элементов и выберите пункт Выбрать элементы.

  6. Перейдите на вкладку Компоненты COM, выберите элемент управления Проигрыватель Windows Media и нажмите кнопку ОК.

    Элемент управления "Проигрыватель Windows Media" добавляется на Панель элементов.

  7. В обозревателе решений щелкните файл UserControl1.vb правой кнопкой мыши и выберите команду Переименовать.

  8. Измените имя WmpAxControl.vb на или WmpAxControl.cs в зависимости от языка.

  9. Если вам будет предложено переименовать все ссылки, нажмите кнопку Да.

Создание элемента управления ActiveX

Visual Studio автоматически создает класс-оболочку AxHost для элемента управления Microsoft ActiveX при добавлении элемента управления в область конструктора. Следующая процедура создает управляемую сборку с именем AxInterop.WMPLib.dll.

Создание элемента управления ActiveX

  1. Откройте файл WmpAxControl.vb или WmpAxControl.cs в конструкторе Windows Forms.

  2. На панели элементов добавьте элемент управления "Проигрыватель Windows Media" в область конструктора.

  3. В окне "Свойства" замените значение свойства Dock элемента управления "Проигрыватель Windows Media" на Fill.

  4. Соберите проект библиотеки элементов управления WmpAxLib.

Размещение элемента управления ActiveX на странице WPF

Размещение элемента управления ActiveX

  1. В проекте HostingAxInWpf добавьте ссылку на сформированную сборку взаимодействия ActiveX.

    Эта сборка имеет имя AxInterop.WMPLib.dll и была добавлена в папку Debug проекта WmpAxLib при импорте элемента управления "Проигрыватель Windows Media".

  2. Добавьте ссылку на сборку WindowsFormsIntegration с именем WindowsFormsIntegration.dll.

  3. Добавьте ссылку на сборку Windows Forms, которая называется System.Windows.Forms.dll.

  4. Откройте Файл MainWindow.xaml в конструкторе WPF.

  5. Присвойте элементу Grid имя grid1.

    <Grid Name="grid1">
        
    </Grid>
    
  6. В представлении конструирования или XAML выделите элемент Window.

  7. В окне свойств щелкните вкладку События.

  8. Дважды щелкните событие Loaded.

  9. Вставьте следующий код в обработчик события Loaded.

    Этот код создает экземпляр элемента управления WindowsFormsHost и добавляет экземпляр элемента управления AxWindowsMediaPlayer в качестве дочернего.

    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. Нажмите клавишу F5 для сборки и запуска приложения.

См. также