Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Actualización: noviembre 2007
En este tutorial se muestra cómo crear un control de WPF compuesto y hospedarlo en controles y formularios de formularios Windows Forms mediante el control ElementHost.
En este tutorial, se implementa un UserControl de WPF que contiene dos controles secundarios. UserControl muestra un cono tridimensional (3D). Representar objetos 3D es mucho más fácil con WPF que con formularios Windows Forms. Por consiguiente, resulta lógico hospedar una clase UserControl de WPF para crear los gráficos 3D en formularios Windows Forms.
Entre las tareas ilustradas en este tutorial se incluyen:
Crear el UserControl de WPF.
Crear el proyecto host de formularios Windows Forms.
Hospedar el UserControl de WPF.
Para ver un listado de código completo de las tareas ilustradas en este tutorial, vea Ejemplo Hosting a Windows Presentation Foundation Composite Control in Windows Forms.
Nota Los cuadros de diálogo y comandos de menú que se ven pueden diferir de los descritos en la Ayuda, en función de los valores de configuración o de edición activos. Para cambiar la configuración, elija Importar y exportar configuraciones en el menú Herramientas. Para obtener más información, vea Valores de configuración de Visual Studio.
Requisitos previos
Necesita los componentes siguientes para completar este tutorial:
- Visual Studio 2008.
Crear el control de usuario
Para crear el control de usuario
Cree un proyecto de biblioteca de controles de usuario de WPF denominado HostingWpfUserControlInWf.
Abra UserControl1.xaml en WPF Designer.
Reemplace el código generado con el siguiente código.
En este código se define un control de usuario (System.Windows.Controls.UserControl) que contiene dos controles secundarios. El primer control secundario es un control System.Windows.Controls.Label; el segundo es un control Viewport3D que muestra un cono 3D.
Crear el proyecto host de formularios Windows Forms
Para crear el proyecto host
Agregue un proyecto de aplicación de Windows denominado WpfUserControlHost a la solución. Para obtener más información, vea Agregar nuevo proyecto (Cuadro de diálogo).
En el Explorador de soluciones, agregue una referencia al ensamblado WindowsFormsIntegration, denominado WindowsFormsIntegration.dll.
Agregue referencias a los ensamblados de WPF siguientes:
PresentationCore
PresentationFramework
WindowsBase
Agregue una referencia al proyecto HostingWpfUserControlInWf.
En el Explorador de soluciones, configure el proyecto WpfUserControlHost como proyecto de inicio.
Hospedar el control de usuario de Windows Presentation Foundation
Para hospedar el control de usuario
En el Diseñador de Windows Forms, abra Form1.
En la ventana Propiedades, seleccione Eventos y haga doble clic en el evento Load para crear un controlador de eventos.
Se abrirá el Editor de código para el controlador de eventos Form1_Load recién generado.
Reemplace el código de Form1.cs con el código siguiente.
El controlador de eventos Form1_Load crea una instancia de UserControl1 y la agrega a la colección de controles secundarios del control ElementHost. El control ElementHost se agrega a la colección de controles secundarios del formulario.
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 ClassPresione F5 para generar y ejecutar la aplicación.
Vea también
Tareas
Ejemplo Hosting a Windows Presentation Foundation Composite Control in Windows Forms
Conceptos
Tutorial: Hospedar un control de Windows Presentation Foundation en formularios Windows Forms