Essa explicação passo a passo demonstra como você pode criar um controle composto WPF e hospedá-lo em formulários e controles Windows Forms ao usar o controle ElementHost.
Nesta explicação passo a passo, você implementará um WPF UserControl que contém dois controles filhos. O UserControl exibe um cone tridimensional (3D). Renderizar objetos 3D é muito mais fácil com o WPF do que com Windows Forms. Portanto, faz sentido hospedar uma classe WPF UserControl para criar gráficos 3D em Windows Forms.
Tarefas ilustradas nesta explicação passo a passo incluem:
For a complete code listing of the tasks illustrated in this walkthrough, see Que hospedam um Windows Presentation Foundation composto Controlarar no Windows Forms Exemplo.
Observação As caixas de diálogo e comandos de menu você vê podem diferir daqueles descritos na ajuda dependendo de suas configurações ativas ou versão. Para alterar estas configurações, escolha Importar e Exportar Configurações no menu de Ferramentas. Para obter mais informações, consulte Configurações do Visual Studio.
Para completar este passo a passo, são necessários os seguintes componentes:
Para criar o UserControl
Creating the Windows Forms Host Project
To create the host project
Adicione um projeto de aplicativos do Windows chamado WpfUserControlHost à solução. Para obter mais informações, consulte Caixa de Diálogo Add New Project.
No Solution Explorer, acrescente uma referência ao assembly WindowsFormsIntegration, que é chamado WindowsFormsIntegration.dll.
Adicione referências para os seguintes conjuntos de módulos (assemblies) WPF:
PresentationCore
PresentationFramework
WindowsBase
Adicione uma referência para o projeto HostingWpfUserControlInWf.
No Gerenciador de Soluções, defina o projeto WpfUserControlHost como o projeto de inicialização.
Hospedando o Windows Presentation Foundation UserControl
Para hospedar o UserControl
No Windows Forms Designer, abra Form1.
Na janela Propriedades, clique em Events e em seguida, clique duas vezes no evento Load para criar um tratador de eventos.
O Editor de Código abre o tratador de eventos Form1_Load recém-gerado.
Substitua o código em Form1.cs com o seguinte código.
The Form1_Load event handler creates an instance of UserControl1 and adds itto the ElementHost control's collection of child controls. O controle ElementHost é adicionado à coleção de controles filho do formulário.
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
Pressione F5 para criar e executar o aplicativo.
Tarefas
Conceitos
Referência
Outros recursos