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

虽然使用 Visual Studio 中的 Office 开发工具创建的解决方案旨在直接使用 Windows 窗体控件,但你也可以在解决方案中使用 WPF 控件。 Windows Presentation Foundation (WPF) 就设计用户界面这方面而言可替代 Windows 窗体。 WPF 使用一种称为可扩展应用程序标记语言 (XAML) 的标记语言提供用于整合 UI、媒体和文档的新技术。 有关详细信息,请参阅 WPF 概述

适用于:本主题中的信息适用于文档级别项目和 VSTO 外接程序项目。 请参阅按 Office 应用程序和项目类型提供的功能

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

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

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

  • VSTO 外接程序中的自定义任务窗格。

  • Outlook VSTO 外接程序中的窗体区域。

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

不能直接将 WPF 控件添加到 Office 解决方案中的 UI 元素。 而是将用户控件 (WPF) 项添加到项目,并将其用作 WPF 控件的设计图面。 然后,将 WPF 用户控件添加到项目中的 UI 元素。

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

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

  2. 用户控件 (WPF) 项添加到项目中。

  3. 工具箱中,将 WPF 控件添加到 WPF 用户控件设计图面。

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

  4. 生成项目。

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

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

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

  7. 重新生成项目。

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

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

  2. 用户控件 (WPF) 项添加到项目中。

  3. 工具箱中,将 WPF 控件添加到 WPF 用户控件设计图面。

  4. 生成项目。

  5. 用户控件项(如 Windows 窗体用户控件)添加到项目。

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

  7. 工具箱ProjectName WPF 用户控件选项卡中,将 WPF 用户控件拖动到设计器。

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

  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 控件的体系结构和设计问题的详细信息,请参阅以下主题:

有关在设计时将 WPF 控件添加到 Visual Studio 中 Windows 窗体控件和窗体的详细信息,请参阅以下主题: