功能区是组织相关命令的一种方法,以便更易于查找。 命令在功能区上显示为控件。 控件在应用程序窗口的上边缘沿水平条组织成 组 。 相关组已在选项卡中组织。
使用早期版本的 Microsoft Office 系统中的菜单和工具栏访问的大多数功能现在都可以使用功能区进行访问。 有关详细信息,请参阅 2007 Microsoft Office 系统的用户界面的技术文章开发人员概述。
适用于: 本主题中的信息适用于以下应用程序的文档级项目和 VSTO 外接程序项目:Excel、InfoPath 2013 和 InfoPath 2010、Outlook、PowerPoint、Project、Visio、Word。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能。
自定义 Microsoft Office 功能区
若要自定义功能区,请将以下功能区项之一添加到 Office 项目:
功能区(可视化设计器)
功能区(XML)
例如,若要自定义 Excel 功能区,请将功能区项添加到 Excel VSTO 外接程序项目中。
功能区(可视化设计器)元素
功能区(可视化设计器)项提供了高级工具,使你能够更轻松地设计和开发自定义功能区。 使用 功能区(可视化设计器) 项,通过以下方式自定义功能区:
将自定义或内置选项卡添加到功能区。
将自定义组添加到自定义或内置选项卡。
注释
内置选项卡或组是Microsoft Office 应用程序功能区上已存在的选项卡或组。 例如, “数据 ”选项卡是 Excel 中的内置选项卡。 “连接”组是“数据”选项卡上的内置组。
将自定义控件添加到自定义组。
将自定义控件添加到 Backstage 视图。
有关如何使用 功能区(可视化设计器)项自定义功能区 的详细信息,请参阅 功能区设计器。
功能区 (XML) 项目
如果要以功能区(可视化设计器)项不支持的方式自定义功能区,请使用功能区(XML)项。 使用 功能区(XML) 项,以以下方式自定义功能区:
将 内置 组添加到自定义选项卡或内置选项卡。
将内置控件添加到自定义组。
添加自定义代码以替代内置控件的事件处理程序。
自定义快速访问工具栏。
使用合格的 ID 在 VSTO 外接程序之间共享功能区自定义。
有关如何使用 功能区 (XML) 项自定义功能区 的详细信息,请参阅 功能区 XML。
将功能区设计器中的功能区导出到功能区 XML
如果使用功能区设计器创建功能区,然后决定要以 功能区(可视化设计器) 项不支持的方式自定义功能区,则可以将功能区导出到 XML。
Visual Studio 会自动创建 功能区 (XML) 项,并使用功能区上每个控件的元素和属性填充功能区 XML 文件。
功能区设计器的 “属性” 窗口中的所有属性都不会传输到功能区 XML 文件。 例如,Visual Studio 不导出 Image 或 Text 属性的值。 这是因为必须在导出项目的功能区代码文件中创建回调方法来分配图像或设置控件的文本。 Visual Studio 不会在导出过程中自动生成回调方法。
此外,任何未更改的默认属性值都不会显示在生成的功能区 XML 文件中。
有关如何将功能区导出到 XML 的详细信息,请参阅 “如何:将功能区设计器中的功能区导出到功能区 XML”。
更新代码
新的功能区代码文件将添加到 解决方案资源管理器。 此文件包含 Ribbon XML 类。 必须在此类的Ribbon Callbacks区域中创建回调方法来处理用户动作,如单击按钮。 将代码从事件处理程序移动到这些回调方法,并修改代码以使用功能区扩展性(RibbonX)编程模型。 有关更多信息,请参阅 Ribbon XML。
必须向ThisAddIn、ThisWorkbook或ThisDocument类中添加代码,覆盖CreateRibbonExtensibilityObject方法,并将 Ribbon XML 类返回到 Office 应用程序。
有关更多信息,请参阅 Ribbon XML。
向项目添加多个功能区项
可以将一个项目添加多个 Ribbon 项。 如果要执行以下两个任务中的任一任务,这非常有用:
为 Outlook 检查器创建功能区。 有关详细信息,请参阅 自定义 Outlook 的功能区。
注释
检查器是当用户执行某些任务(例如创建电子邮件)时打开的窗口。
选择要在运行时显示的功能区。
在运行时选择显示哪些功能区
由于项目可以包含多个功能区,因此你可以选择要在运行时显示的功能区。
若要选择在运行时显示的功能区,请在项目的CreateRibbonExtensibilityObject方法中重写ThisAddin或ThisWorkbook类,并返回您要显示的功能区。 以下示例检查命名 myCondition 字段的值,并返回相应的功能区。
注释
此示例中使用的语法返回了一个通过使用 功能区(可视设计器) 项创建的功能区。 返回通过使用Ribbon (XML)项创建的功能区的语法略有不同。 有关返回 功能区 (XML) 项的详细信息,请参阅 功能区 XML。
添加以下代码:
protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
{
if (myCondition == true)
{
return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { new Ribbon1() });
}
else
{
return Globals.Factory.GetRibbonFactory().CreateRibbonManager(
new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { new Ribbon2() });
}
}
相关主题
| Title | Description |
|---|---|
| 如何开始自定义功能区 | 演示如何自定义Microsoft Office 应用程序的功能区,将 功能区(可视化设计器) 或 功能区(XML) 项添加到 Office 项目。 |
| 功能区设计器 | 介绍如何使用功能区设计器将自定义选项卡、组和控件添加到 Microsoft Office 应用程序的功能区。 |
| 演练:使用功能区设计器创建自定义选项卡 | 演示如何使用功能区设计器创建自定义功能区选项卡。 可以使用功能区设计器在自定义选项卡上添加和定位控件。 |
| 功能区对象模型概述 | 概述可用于在运行时获取和设置功能区控件的属性的强类型对象模型。 |
| 演练:在运行时更新功能区上的控件 | 演示如何使用功能区对象模型在功能区加载到 Office 应用程序后更新功能区控件。 |
| 自定义 Outlook 功能区 | 提供有关自定义 Microsoft Office Outlook 功能区的指导。 |
| 自定义 InfoPath 的功能区 | 提供有关在 Microsoft Office InfoPath 中自定义功能区的指导。 |
| 在运行时访问功能区 | 演示如何显示、隐藏和修改功能区,并使用户能够在自定义任务窗格、作窗格或 Outlook 窗体区域中的控件中运行代码。 |
| 如何:更改功能区上选项卡的位置 | 演示如何更改功能区上的选项卡顺序。 |
| 如何:自定义内置选项卡 | 演示如何向内置选项卡添加组和控件。 |
| 如何:将控件添加到 Backstage 视图 | 演示如何向单击“ 文件”时打开的菜单添加控件。 |
| 如何在功能区组中添加对话框启动器 | 展示如何在功能区的任意组中添加对话框启动器。 |
| 如何:将功能区从功能区设计器导出到功能区 XML | 演示如何通过将功能区从设计器导出到Ribbon XML,以更高级的方式自定义功能区。 |
| 功能区 XML | 说明如何使用功能区 XML 自定义功能区。 |
| 演练:使用功能区设计器创建自定义选项卡 | 演示如何使用 功能区 (XML) 项创建自定义功能区 选项卡。 |