Поделиться через


Пошаговое руководство. Размещение составного элемента управления Windows Presentation Foundation в Windows Forms

Обновлен: Ноябрь 2007

Данный пример демонстрирует создание составного элемента управления WPF и его размещения в элементах управления и формах Windows Forms с помощью элемента управления ElementHost.

Данное пошаговое руководство реализует WPFUserControl, который содержит два дочерних элемента управления. UserControl отображает трехмерный (3-D) конус. Отрисовывать 3-D объекты гораздо удобнее с помощью WPF, нежели с Windows Forms. Поэтому для создания 3-D графики имеет смысл размещать класс WPFUserControl в Windows Forms.

В этом пошаговом руководстве, в частности, рассматриваются следующие задачи:

  • Создание WPFUserControl.

  • Создание проекта размещения Windows Forms

  • Размещение WPFUserControl.

Полный пример кода для задач, приведенных в этом пошаговом руководстве, см. в разделе Пример размещения составного элемента управления Windows Presentation Foundation в Windows Forms.

Примечание.   Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска. Чтобы изменить параметры, выберите в меню Сервис команду Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Для выполнения инструкций данного пошагового руководства необходимы следующие компоненты.

  • Visual Studio 2008.

Создание UserControl

Для создания UserControl

  1. Создайте проект WPF User Control Library с именем HostingWpfUserControlInWf.

  2. Откройте файл UserControl1.xaml в конструкторе WPF (конструктор).

  3. Замените сгенерированный код следующим:

    Этот код определяет System.Windows.Controls.UserControl, который содержит два дочерних элемента управления. Первый дочерний элемент управления является элементом управления System.Windows.Controls.Label, а второй является элементом управления Viewport3D, отображающим 3-D конус.

Создание проекта размещения Windows Forms.

Для создания проекта размещения

  1. Добавьте в решение проект приложения Windows с именем WpfUserControlHost. Дополнительные сведения см. в разделе Диалоговое окно "Добавление нового проекта".

  2. В обозревателе решений добавьте ссылку на сборку WindowsFormsIntegration с именем WindowsFormsIntegration.dll.

  3. Добавьте ссылки на следующие сборки WPF:

    • PresentationCore

    • PresentationFramework

    • WindowsBase

  4. Добавьте ссылку на проект HostingWpfUserControlInWf.

  5. В обозревателе решений назначьте проект WpfUserControlHost запускаемым проектом.

Размещение UserControl Windows Presentation Foundation

Для размещения UserControl

  1. В конструкторе Windows Forms откройте Form1.

  2. В окне «Свойства» нажмите кнопку События, а затем дважды щелкните событие Load, чтобы создать обработчик событий.

    Редактор кода откроется на новом созданном обработчике событий Form1_Load.

  3. Замените код в файле Form1.cs следующим кодом:

    Обработчик событий Form1_Load создает экземпляр UserControl1 и добавляет егов коллекцию элемента управления ElementHost дочерних элементов управления. Элемент управления ElementHost добавляется в коллекцию формы дочерних элементов управления.

    Imports System
    Imports System.Collections.Generic
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Text
    Imports System.Windows.Forms
    
    Imports System.Windows.Forms.Integration
    
    Public Class Form1
        Inherits Form
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ' Create the ElementHost control for hosting the
            ' WPF UserControl.
            Dim host As New ElementHost()
            host.Dock = DockStyle.Fill
    
            ' Create the WPF UserControl.
            Dim uc As New HostingWpfUserControlInWf.UserControl1()
    
            ' Assign the WPF UserControl to the ElementHost control's
            ' Child property.
            host.Child = uc
    
            ' Add the ElementHost control to the form's
            ' collection of child controls.
            Me.Controls.Add(host)
        End Sub
    
    End Class
    
  4. Нажмите клавишу F5 для построения и выполнения приложения.

См. также

Задачи

Пример размещения составного элемента управления Windows Presentation Foundation в Windows Forms

Основные понятия

Обзор: размещение элементов управления Windows Presentation Foundation в приложении Windows Forms

Пошаговое руководство. Размещение составного элемента управления Windows Presentation Foundation в Windows Forms

Ссылки

ElementHost

WindowsFormsHost

Другие ресурсы

Конструктор WPF

Разделы руководства по миграции и взаимодействию