Usar controles WPF en soluciones de OfficeUse WPF controls in Office solutions

Aunque las soluciones creadas con las herramientas de desarrollo de Visual Studio para Office están diseñadas para funcionar directamente con controles de Windows Forms, también puede usar controles WPF en sus soluciones.Although solutions created by using the Office development tools in Visual Studio are designed to work with directly with Windows Forms controls, you can also use WPF controls in your solutions. Windows Presentation Foundation (WPF) es una alternativa a los formularios Windows Forms para diseñar interfaces de usuario.Windows Presentation Foundation (WPF) is an alternative to Windows Forms for designing user interfaces. WPF utiliza un lenguaje de marcado denominado lenguaje XAML que proporciona nuevas técnicas con el fin de incorporar interfaces de usuario, multimedia y documentos.WPF uses a markup language called Extensible Application Markup Language (XAML) to provide new techniques for incorporating UI, media, and documents. Para obtener más información, consulte información general sobre WPF.For more information, see WPF overview.

Se aplica a: la información de este tema se aplica al documento-proyectos y agregar de VSTO de nivel-en los proyectos.Applies to: The information in this topic applies to document-level projects and VSTO Add-in projects. Consulte características disponibles por tipo de aplicación y el proyecto de Office.See Features available by Office application and project type.

Cualquier elemento de la interfaz de usuario que pueda hospedar controles de Windows Forms en una solución de Office también puede hospedar controles WPF.Any UI element that can host Windows Forms controls in an Office solution can also host WPF controls. Entre estos elementos se incluyen los siguientes:These include the following elements:

  • Documentos y hojas de cálculo en personalizaciones de nivel de documento.Documents and worksheets in document-level customizations.

  • Paneles de acciones en personalizaciones de nivel de documento.Actions panes in document-level customizations.

  • Paneles de tareas personalizados en complementos de VSTO.Custom task panes in VSTO Add-ins.

  • Áreas de formulario en complementos de VSTO para Outlook.Form regions in VSTO Add-ins for Outlook.

Agregar controles WPF a proyectos de Office en tiempo de diseñoAdd WPF controls to Office projects at design time

No puede agregar controles WPF directamente a los elementos de la interfaz de usuario en las soluciones de Office.You cannot add WPF controls directly to UI elements in Office solutions. En su lugar, agregue un Control de usuario (WPF) elemento al proyecto y usarlo como la superficie de diseño para los controles WPF.Instead, add a User Control (WPF) item to your project, and use it as the design surface for WPF controls. A continuación, agregue el control de usuario de WPF a un elemento de la interfaz de usuario del proyecto.Then, add the WPF user control to a UI element in your project.

Para agregar controles de WPF a un panel de acciones, panel de tareas personalizado o área de formularioTo add WPF controls to an actions pane, custom task pane, or form region

  1. Abra un proyecto al que desea agregar un panel de tareas personalizado, un panel de acciones o un área de formulario.Open a project to which you want to add a custom task pane, an actions pane, or a form region.

  2. Agregar un Control de usuario (WPF) a su proyecto.Add a User Control (WPF) item to your project.

  3. Desde el cuadro de herramientas, agregar controles WPF a la superficie de diseño del control de usuario WPF.From the Toolbox, add WPF controls to the WPF user control design surface.

    De forma predeterminada, cuando el Diseñador de controles de usuario WPF está abierto, el cuadro de herramientas contiene solo los controles WPF.By default, when the WPF user control designer is open, the Toolbox contains only WPF controls.

  4. Compile el proyecto.Build the project.

  5. Agregue un panel de acciones, área de formulario o panel de tareas personalizado al proyecto:Add an actions pane, form region, or custom task pane to your project:

  6. Desde el ProjectName controles de usuario de WPF pestaña de la cuadro de herramientas, arrastre el control de usuario WPF hasta el diseñador para el panel de acciones, área de formulario o panel de tareas personalizado.From the ProjectName WPF User Controls tab of the Toolbox, drag the WPF user control to the designer for the actions pane, form region, or custom task pane.

    Visual Studio crea automáticamente un objeto ElementHost que hospeda el control de usuario de WPF en el elemento de la interfaz de usuario.Visual Studio automatically creates an ElementHost object that hosts the WPF user control on the UI element.

  7. Recompile el proyecto.Rebuild the project.

Para agregar controles de WPF a un documento u hoja de cálculo en un proyecto de nivel de documentoTo add WPF controls to a document or worksheet in a document-level project

  1. Abra un proyecto de nivel de documento para Word o Excel.Open a document-level project for Word or Excel.

  2. Agregar un Control de usuario (WPF) a su proyecto.Add a User Control (WPF) item to your project.

  3. Desde el cuadro de herramientas, agregar controles WPF a la superficie de diseño del control de usuario WPF.From the Toolbox, add WPF controls to the WPF user control design surface.

  4. Compile el proyecto.Build the project.

  5. Agregar un Control de usuario elemento (es decir, un control de usuario de Windows Forms) al proyecto.Add a User Control item (that is, a Windows Forms user control) to the project.

  6. Abra el diseñador para el control de usuario de formularios Windows Forms.Open the designer for the Windows Forms user control.

  7. Desde el ProjectName controles de usuario de WPF pestaña de la cuadro de herramientas, arrastre el control de usuario WPF hasta el diseñador.From the ProjectName WPF User Controls tab of the Toolbox, drag the WPF user control to the designer.

    Visual Studio crea automáticamente un objeto ElementHost que hospeda el control de usuario de WPF en el control de usuario de formularios Windows Forms.Visual Studio automatically creates an ElementHost object that hosts the WPF user control in the Windows Forms user control.

  8. Escriba código que agregue mediante programación el control de usuario de formularios Windows Forms al documento o libro.Write code that programmatically adds the Windows Forms user control to the document or workbook. Para obtener más información, consulte agregar controles a documentos de Office en tiempo de ejecución.For more information, see Add controls to Office documents at runtime.

    Note

    No puede arrastrar el control de usuario de formularios Windows Forms hacia el documento o la hoja de cálculo en el diseñador.You cannot drag the Windows Forms user control to the document or worksheet in the designer.

  9. Recompile el proyecto.Rebuild the project.

Hospedar controles WPF mediante la clase ElementHostHost WPF controls by using the ElementHost class

Visual Studio proporciona características que le ayudan a usar controles de Windows Forms en las soluciones de Office, pero no proporciona características similares para los controles WPF.Visual Studio provides features that help you use Windows Forms controls in your Office solutions, but it does not provide similar features for WPF controls. Por ejemplo, puede agregar los controles de formularios Windows Forms a documentos y hojas de cálculo en tiempo de diseño, arrastre controles desde el cuadro de herramientas, o en tiempo de ejecución mediante el uso de métodos auxiliares.For example, you can add Windows Forms controls to documents and worksheets at design time by dragging controls from the Toolbox, or at runtime by using helper methods. Sin embargo, estas herramientas no están disponibles para los controles de WPF.However, these tools are not available for WPF controls.

Los controles de WPF utilizan la clase ElementHost como una capa de la integración entre un control de formularios Windows Forms y los controles de WPF.WPF controls use the ElementHost class as an integration layer between a Windows Forms control or form and the WPF controls. Al agregar controles de WPF a la solución en tiempo de diseño, Visual Studio genera automáticamente un objeto ElementHost.When you add WPF controls to your solution at design time, Visual Studio automatically generates an ElementHost object for you.

Recursos de WPFWPF resources

Para obtener más información sobre los problemas de arquitectura y diseño relacionados con el hospedaje de controles de WPF en controles de formularios y formularios Windows Forms, vea los temas siguientes:For more information about architectural and design issues for hosting WPF controls on Windows Forms controls and forms, see the following topics:

Para obtener más información sobre cómo agregar controles de WPF a los controles de formularios y formularios Windows Forms en Visual Studio en tiempo de diseño, vea los temas siguientes:For more information about adding WPF controls to Windows Forms controls and forms in Visual Studio at design time, see the following topics:

Vea tambiénSee also