Пошаговое руководство. Размещение составного элемента управления 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
Создайте проект WPF User Control Library с именем HostingWpfUserControlInWf.
Откройте файл UserControl1.xaml в конструкторе WPF (конструктор).
Замените сгенерированный код следующим:
Этот код определяет System.Windows.Controls.UserControl, который содержит два дочерних элемента управления. Первый дочерний элемент управления является элементом управления System.Windows.Controls.Label, а второй является элементом управления Viewport3D, отображающим 3-D конус.
Создание проекта размещения Windows Forms.
Для создания проекта размещения
Добавьте в решение проект приложения Windows с именем WpfUserControlHost. Дополнительные сведения см. в разделе Диалоговое окно "Добавление нового проекта".
В обозревателе решений добавьте ссылку на сборку WindowsFormsIntegration с именем WindowsFormsIntegration.dll.
Добавьте ссылки на следующие сборки WPF:
PresentationCore
PresentationFramework
WindowsBase
Добавьте ссылку на проект HostingWpfUserControlInWf.
В обозревателе решений назначьте проект WpfUserControlHost запускаемым проектом.
Размещение UserControl Windows Presentation Foundation
Для размещения UserControl
В конструкторе Windows Forms откройте Form1.
В окне «Свойства» нажмите кнопку События, а затем дважды щелкните событие Load, чтобы создать обработчик событий.
Редактор кода откроется на новом созданном обработчике событий Form1_Load.
Замените код в файле 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
Нажмите клавишу F5 для построения и выполнения приложения.
См. также
Задачи
Пример размещения составного элемента управления Windows Presentation Foundation в Windows Forms
Основные понятия
Обзор: размещение элементов управления Windows Presentation Foundation в приложении Windows Forms