Demonstra Passo a passo: Hospedagem de um controle Windows Presentation Foundation composto do Windows Forms
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:
Criando o WPF UserControl.
Criando o projeto host Formulários do Windows.
Hospedagem de WPF UserControl.
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 as configurações, escolher Importar e exportar configurações on the Ferramentas menu. Para obter mais informações, consulte Configurações do Visual Studio.
Pré-requisitos
Para completar este passo a passo, são necessários os seguintes componentes:
- Visual Studio 2008.
Criando o UserControl
Para criar o UserControl
Criar um projeto Biblioteca de Controle de Usuário WPF chamado HostingWpfUserControlInWf.
Abra UserControl1.xaml no WPF Designer.
Substitua o código gerado pelo seguinte código.
Este código define um System.Windows.Controls.UserControl contendo dois controles filho. O primeiro controle filho é um controle System.Windows.Controls.Label; a segunda é um controle Viewport3D que exibe um cone 3D.
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 manipulador de eventos cria uma instância de UserControl1 e o adicionapara o ElementHost coleção da controle de controles filho. 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.
Consulte também
Tarefas
Que hospedam um Windows Presentation Foundation composto Controlarar no Windows Forms Exemplo
Conceitos
Demonstra Passo a passo: Hospedagem de um controle Windows Presentation Foundation no Windows Forms