在 Office 解决方案中使用 WPF 控件

虽然使用 Visual Studio 中的 Office 开发工具创建的解决方案旨在直接用于 Windows 窗体,但是也可以在解决方案中使用 WPF 控件。Windows Presentation Foundation (WPF) 是用于设计用户界面的 Windows 窗体的替代方法。WPF 利用一种称作可扩展应用程序标记语言 (XAML) 的标记语言,提供了用于整合 UI、媒体和文档的新技术。有关更多信息,请参见WPF 介绍

**适用于:**本主题中的信息适用于 Office 2013 和 Office 2010 的文档级项目和应用程序级项目。请参见按 Office 应用程序和项目类型提供的功能

在 Office 解决方案中可承载 Windows 窗体控件的任何 UI 元素也可以承载 WPF 控件。这些元素包括:

  • 文档级自定义项中的文档和工作表。

  • 文档级自定义项中的操作窗格。

  • 应用程序级外接程序中的自定义任务窗格。

  • Outlook 应用程序级外接程序中的窗体区域。

链接到视频 有关相关视频演示,请参见 How Do I: Use WPF Controls Inside an Excel Actions Pane?(如何实现:在 Excel 操作窗格中使用 WPF 控件?)。

在设计时将 WPF 控件添加到 Office 项目

不能将 WPF 控件直接添加到 Office 解决方案中的 UI 元素。而是应采用此方法:向项目中添加一个**“用户控件(WPF)”**项,并使用它作为 WPF 控件的设计图面。然后,将 WPF 用户控件添加到项目中的 UI 元素。

将 WPF 控件添加到操作窗格、自定义任务窗格或窗体区域

  1. 打开一个要向其中添加自定义任务窗格、操作窗格或窗体区域的项目。

  2. 向项目中添加**“用户控件(WPF)”**项。

  3. 将 WPF 控件从**“工具箱”**添加到 WPF 用户控件设计图面。

    默认情况下,当 WPF 用户控件设计器打开时,**“工具箱”**只包含 WPF 控件。

  4. 生成项目。

  5. 将操作窗格、窗体区域或自定义任务窗格添加到项目:

  6. 从**“工具箱”**的“项目名称 **WPF 用户控件”**选项卡中,将 WPF 用户控件拖到操作窗格、窗体区域或自定义任务窗格的设计器上。

    Visual Studio 会自动创建一个 ElementHost 对象,该对象在 UI 元素上承载 WPF 用户控件。

  7. 重新生成项目。

将 WPF 控件添加到文档级项目中的文档或工作表

  1. 打开 Word 或 Excel 的文档级项目。

  2. 向项目中添加**“用户控件(WPF)”**项。

  3. 将 WPF 控件从**“工具箱”**添加到 WPF 用户控件设计图面。

  4. 生成项目。

  5. 将**“用户控件”**项(即 Windows 窗体用户控件)添加到项目。

  6. 打开 Windows 窗体用户控件的设计器。

  7. 从**“工具箱”**的“项目名称 **WPF 用户控件”**选项卡中,将 WPF 用户控件拖到设计器上。

    Visual Studio 会自动创建一个 ElementHost 对象,该对象在 Windows 窗体用户控件中承载 WPF 用户控件。

  8. 编写可通过编程方式向文档或工作簿中添加 Windows 窗体用户控件的代码。有关更多信息,请参见在运行时向 Office 文档添加控件

    说明说明

    无法在设计器中将 Windows 窗体用户控件拖到文档或工作表上。

  9. 重新生成项目。

使用 ElementHost 类承载 WPF 控件

Visual Studio 提供了可帮助您在 Office 解决方案中使用 Windows 窗体控件的功能,但它未针对 WPF 控件提供类似的功能。例如,您可以通过在设计时从**“工具箱”**中拖出控件,或通过在运行时使用帮助器方法来向文档和工作表中添加 Windows 窗体控件。但是,这些工具不可用于 WPF 控件。

WPF 控件使用 ElementHost 类作为 Windows 窗体控件或窗体与 WPF 控件之间的集成层。在设计时向解决方案中添加 WPF 控件时,Visual Studio 会自动为您生成一个 ElementHost 对象。

WPF 资源

有关在 Windows 窗体控件和窗体上承载 WPF 控件的体系结构和设计问题的更多信息,请参见以下主题:

有关使用 Visual Studio 在设计时向 Windows 窗体控件和窗体中添加 WPF 控件的更多信息,请参见以下主题:

请参见

任务

如何:向 Word 文档或 Excel 工作簿添加操作窗格

如何:向 Word 文档或 Excel 工作簿添加操作窗格

如何:向应用程序中添加自定义任务窗格

如何:向 Outlook 外接程序项目中添加窗体区域

概念

Office 文档上的 Windows 窗体控件概述

其他资源

Office UI 自定义

操作窗格概述

自定义任务窗格

创建 Outlook 窗体区域