Office 2010 中的 UI 扩展性
在 Office 2007 中引入功能区用户界面的同时,我们还引入了 RibbonX(功能区扩展性)模型,这是一种以编程方式自定义 Office 用户界面的新方法。RibbonX 允许第三方开发人员和解决方案提供商针对客户特定应用场合及优化场合,在功能区的基础上通过创作自定义选项卡和组来构建该模型。
通过为新 Backstage 视图的自定义设置提供支持,Office 2010 扩大了 UI 扩展性平台的范围。它还在已有 RibbonX 平台中增加了几项强大的新功能。
扩展 Backstage 视图
Backstage 视图是 Office UI 新的组成部分。它提升了文件级功能(打印、共享、分发、协作等),就像功能区提升文档创建功能一样。如何使第三方以有意义的方式轻松扩展 Backstage 视图的沉浸式 UI,这是我们所关注的 Office 2010 扩展性的一个重要方面。
有人可能会问:“什么时候适合扩展功能区?什么时候适合扩展 Backstage 视图?”。如果您正在构建针对文档编辑和内容生成场合的解决方案(即客户在处理文档内容 时,您提供的功能可以帮助客户),则应扩展功能区。另一方面,如果您的客户需要一个解决方案,以帮助他们处理文档以及与这些文档关联的流程和自定义工作流,则建议扩展 Backstage。
示例 1 – 通过自定义 Backstage 选项卡高效管理项目/流程
如今,通过协作改进文档远甚以往,这种方式可使文档在各个阶段和周期中转移。与这些文档关联的流程通常是高度自定义流程并特定于组织。Backstage 视图提供了一个适当的位置来展示有关文档和这些独特流程的自定义信息,使用户能够在各个阶段“移动”这些文档。
以下是一个加载项,它可以将自定义“Contoso 流程”(Contoso Process) 选项卡添加到 Backstage 视图中。示例中的所有自定义 UI 均使用新的 Backstage 扩展性模型构建而成。“Contoso 流程”(Contoso Process) 选项卡显示有关电子表格的相关元数据、其所处的阶段以及电子表格要进入下一阶段所需执行的其余步骤。“设计阶段日程安排 ”(Schedule For Design Phase) 和“开放式设计问题”(Open Design Issues) 组为红色,表明存在需要立即引起注意的问题。右图提供了一个放大图片,它概括了其他所有相关电子表格目前在流程中所处的阶段。不难想像如何从承载这些电子表格的 SharePoint 库中提取所有这些自定义元数据。
“Contoso 流程”(Contoso Process) UI 显示自定义元数据以及用于流程管理的可感知上下文的自定义 UI
当所有开放式设计问题得到解决后,即可以编程方式启用该选项卡上方的“退出设计阶段”(Exit Design Phase) 按钮。单击该按钮时,电子表格将进入法律审查阶段,并且该选项卡会动态更新其内容,以显示新的状态和新阶段的各项要求。
“Contoso 流程”(Contoso Process) UI 动态更新,以反映电子表格所进入的新阶段
示例 2 – 集成自定义功能与内置 Backstage 选项卡
假设您是一名解决方案开发人员,您的客户需要经常共享文档。他们喜欢 Backstage 视图中内置的“共享”(Share) 选项卡功能,但也希望采用一种直接的方式通过 Windows Live Hotmail 和 Facebook 交换文档。Backstage 扩展性允许您创建这些自定义功能并将其集成到内置的“共享”(Share) 选项卡中。
下面显示了自定义的“使用电子邮件发送”(Send Using E-Mail) 窗体,其中包含“通过 Hotmail 发送”(Send via Hotmail) 组(图片右下方):
“通过 Hotmail 发送”(Send via Hotmail) 自定义组集成到内置的“使用电子邮件发送”(Send Using E-mail) 窗体中
下面显示了自定义的“共享”(Share) 选项卡,其中包含新的“发表到 Facebook”(Post to Facebook) 任务(以及相关窗体):
对内置的“共享”(Share) 选项卡进行了扩展,使其包含“发表到 Facebook”(Post to Facebook) 自定义任务
示例 3 – 在 Backstage 视图中添加自定义文件级快速命令
现在,假设您是一名开发人员,您的客户需要同时在多个文档中执行大量的数据编辑工作。他们频频打开和关闭文档,并且不希望在关闭文档时出现保存更改的提示。
利用 Backstage 视图扩展性,您可以用“保存并关闭”(Save and Close) 自定义控件(在关闭文档前自动保存)轻松替换内置的“关闭”(Close) 命令。
将内置的“关闭”(Close) 替换为自定义的“保存并关闭”(Save & Close) 之前和之后的 Backstage 中的导航窗格
Backstage 视图扩展性 – 高级概览(针对开发人员)
可在包含功能区和上下文菜单自定义项的同一标记文件中定义 Backstage 自定义设置;Backstage 只不过是另一个顶级节点。其内部层次结构在很多方面都与功能区类似。与功能区一样,Backstage 主要使用选项卡作为其核心构建块。Backstage 选项卡可以包含一列或两列组。前面示例中的自定义“Contoso 流程”(Contoso Process) 选项卡包含以下两列:
与功能区不同,Backstage 还可以在顶级承载按钮。这些按钮在导航窗格中以快速命令的形式显现,如前面示例中的“保存并关闭”(Save and Close) 命令。
尽管功能区和 Backstage 中的组在内容的空间组织上有所不同,但它们可以承载众多相同的控件类型,并且这些控件的回调(自定义函数,用来定义特定控件行为并由 Office 代码调用)在两者间相同。
在即将推出的试用版文档中,将提供有关 Backstage 扩展性及其结构和功能的更详细信息。因为我们已开始向公众提供 Office 2010 试用版,所以将在 MSDN 上的 Office 开发人员中心网站上发布该文档,其中将包括完整的 Backstage XML 架构,内置控件 ID 列表、有关 Backstage 扩展性的详尽介绍文章以及大量 Backstage 扩展性代码示例。
Office 2007 中的 Office 菜单自定义设置
如果您的解决方案在 Office 2007 中自定义了 Office 菜单,则它在 Office 2010 中依然有效。原来添加到 Office 菜单中的所有自定义功能都将出现在 Backstage 导航窗格的“加载项”(Add-Ins) 弹出菜单中:
自定义 Office 菜单项(来自 Office 2007)显示在 Backstage 的导航窗格中
RibbonX 平台改进
从创建功能区解决方案的开发人员那里,我们常常听到这样的要求,即增加选项卡激活和组自动缩放功能。选项卡激活功能允许开发人员按需激活选项卡,使选项卡出现在前台(就好像该选项卡已被选中)以响应某个事件。组自动缩放功能允许自定义功能区组调整其布局,以适应水平窗口的大小。此外,他们还要求提高上下文菜单扩展性。我们在 Office 2010 中已满足了所有这些要求。
选项卡激活支持
假设您利用几个自定义选项卡构建了一个 Excel 解决方案。如果您的每个自定义选项卡都与某个特殊数据类型相关,那么您可能需要确保在用户与相应数据类型交互时,使适当的选项卡正好出现在前台。对 IRibbonUI 对象使用 ActivateTab 方法即可实现此目的(将其传递给用来指定要激活的自定义选项卡的字符串类型的参数):
IRibbonUI.ActivateTab(String tabID)
可以使用“并行”ActivateTabMso 方法激活内置选项卡,使用 ActivateTabQ 方法激活在多个加载项间共享的选项卡(ActivateTabQ 还需要一个字符串类型的参数,该参数指定目标加载项的命名空间)。
自定义组自动缩放
您或许已经注意到,当调整窗口大小时,内置功能区组会更改其布局。当窗口变大时,功能区中的组会利用相应空间来显示标签,或者增大某些命令的大小;当窗口缩小时,这些组会进行调整,并将多个功能“打包”到较小的空间中。
假设您的解决方案的客户希望在非最大化窗口中运行,以便他们可以同时看到多个应用程序。但是,他们希望在缩小应用程序窗口时,您的自定义组中的命令不要马上缩小成一个按钮,导致他们还需再次单击。您不必为自定义组规定在何时 或确切地以何种方式 缩放,在 Office 2010 中,您只需指明组应自适应地改变其布局(通过将其 autoScale 属性设置为“true”)即可,Office 会确保它尽量符合改变的窗口大小。
下面的示例演示如何使用 autoScale=true 缩放加载项组;请注意,应为组本身指定图标,因为当组最终转变成一个按钮时,将使用该图标:
在 Office 2010 中,自定义组可以改变其布局以适合大小经过调整的应用程序窗口
上下文菜单扩展性
如果您正在 Office 基础之上构建解决方案,那么高效访问常用的上下文功能对解决方案用户而言非常重要,您可能考虑过自定义右键单击菜单。某些上下文菜单通过 CommandBars 对象模型已变成可扩展菜单。但是,不能通过此方式更改另外一些上下文菜单。例如,PowerPoint 2007 包含不能通过 CommandBars OM 访问的上下文菜单,并且也不能通过 CommandBars OM 将某几个控件类型(库、分割按钮)添加到上下文菜单中。
在 Office 2010 中,您也可以依靠熟悉的 RibbonX 模型自定义上下文菜单。现在,可以在自定义的上下文菜单中添加内置菜单中受支持的所有控件类型。在 Office 2010 中,可以通过自定义 UI 标记(承载了功能区的标记)中的新顶级节点访问上下文菜单。
Excel 中的自定义单元格上下文菜单,其中添加了自定义分隔按钮、库和分隔符
结束语
借助新的 Backstage 扩展性平台和功能区扩展性增强功能,您可以构建比以往更加丰富的 Office 2010 解决方案。我们希望您已经在 Office 2010 技术预览版中开始使用这些功能,并热切期望您继续提出反馈意见。
相关文章
- Microsoft Office 2010 开发人员中心
- Microsoft Office 2007 Fluent 用户界面开发人员中心
- John Durant 的 Office 开发博客
- Brian Jones 和 Zeyad Rajabi 的 Office 解决方案博客
- Jensen Harris 的 Microsoft Office 2007 UI 博客上的开发人员资源
- Mirko Mandic,Office 用户体验计划经理
更新 - 11 月 3 日:在文章末尾的“相关文章”中添加了指向更多资源的链接。
更新 - 11 月 20 日:随 Office 2010 公共 Beta 版本提供了更多技术文章,参见 Mirko 在下面的注释(发表于 11 月 20 日)可了解详情。
最初发表时间: 2009 年 11 月 3 日(星期二),早上 6:04,作者:OffTeam
这是一篇本地化的博客文章。请访问 https://blogs.technet.com/office2010/archive/2009/11/03/ui-extensibility-in-office-2010.aspx 以查看原文。