VSTO 学习笔记(十)Office 2010 Ribbon开发

原文: VSTO 学习笔记(十)Office 2010 Ribbon开发

微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,其将一系列相关的功能集成在一个个Ribbon中,便于集中管理、操作。这种Ribbon是高度可定制的,用户可以将自己常用的功能进行单独设置,提高工作效率。但是由于Office 2003时代用户的操作习惯已经养成,结果到了Office 2007很多菜单、按钮都找不到了,着实有些尴尬。经过一段时间的适应,相信大多数用户已经习惯Ribbon式的界面了。到了Office 2010时代,微软已经将所有Office产品加上了Ribbon界面:

测试代码下载

本系列所有示例代码均在 Visual Studio 2010 Ultimate RTM + Office 2010 Professional Plus RTM x64 中测试通过

转载请注明出处:http://www.cnblogs.com/brooks-dotnet/archive/2010/12/31/1923519.html

 

Word 2010

Excel 2010

PowerPoint 2010

Publisher 2010

Project 2010

Visio 2010

Access 2010

InfoPath Designer 2010

InfoPath Filler 2010

SharePoint Workspace 2010(原Groove)

Onenote 2010

 

也有很多软件也推出了Ribbon界面,著名的如Autodesk系列、WinZip、Xencoder等:

AutoCAD 2011

 

作为开发人员我们就想如何才能开发这种Ribbon界面。我查找了一些资料,整理如下,如果你有更好的方案,欢迎补充。

 

一、Windows Ribbon Framework

以下摘自MSDN,原文地址

Developer Audience

The Windows Ribbon framework is designed for use by C/C++ developers and UI designers.

Recommended proficiencies:

  • COM programming
  • Windows API programming
  • XML/XAML programming

Recommended foundational knowledge:

  • UI programming concepts
  • General UI concepts

Minimum Requirements

Minimum supported client

Windows 7

Windows Vista with Service Pack 2 (SP2) and Platform Update for Windows Vista

Minimum supported server

Windows Server 2008 R2

Windows Server 2008 with SP2 and Platform Update for Windows Server 2008

Windows Software Development Kit (SDK)

7.0

Header and IDL files

uiribbon.h, uiribbon.idl

 

二、Office 2010 AddIns 

Office PIA中提供了接口、类来对Ribbon进行操作,可以参见我之前的一篇博文:VSTO学习笔记() 开发Office 2010 64COM加载项

主要利用CommandBar类进行相关操作。利用Office PIA操作Ribbon很不直观,需要控制很多细节,但是非常灵活,可以最大程度的自定义Ribbon。

 

三、OpenXML SDK 2.0

如果你还没有安装OpenXML SDK 2.0,可以在这里下载。

Office 2007时代首次推出了OpenXML格式,并且通过了ISO国际标准。OpenXML格式有诸多好处,微软也发布了OpenXML SDK来对Office 2007、Office 2010的文档进行操作,提供了除Office PIA之外的另一种选择。采用OpenXML格式的Office文档实际上就是一个标准ZIP压缩包,可以将一个Office文档的扩展名修改为.zip并解压缩来查看其中的内容。

用户自定的Ribbon在OpenXML中保存在一个名为customUI.xml的XML文件中,如图,我打开了一个包含有加载宏的Word 2010文档,其中有一个自定义Ribbon,Office Developer Resources:

VSTO 学习笔记(十)Office 2010 Ribbon开发_第1张图片

将这个文档的扩展名修改为.zip:

VSTO 学习笔记(十)Office 2010 Ribbon开发_第2张图片

可以看到其文档结构,在customUI文件夹下保存了用户自定义Ribbon的信息:

VSTO 学习笔记(十)Office 2010 Ribbon开发_第3张图片

打开customUI文件:

VSTO 学习笔记(十)Office 2010 Ribbon开发_第4张图片

可以看到用户自定义Ribbon的具体描述,customUI.xml需要遵循Office 2010的XML架构规范,可以在这里下载。Office 2007的XML架构规范可以在这里下载。

下载下来解压缩后,是一个xsd文件,查找关于Ribbon的部分:

VSTO 学习笔记(十)Office 2010 Ribbon开发_第5张图片

阅读这个xsd文件需要有一定的XML Schema基础,我们只需要大概了解即可,主要为了后面添加自定义的customUI文件。OpenXML SDK 2.0对此提供了支持,可以对Ribbon进行控制:

VSTO 学习笔记(十)Office 2010 Ribbon开发_第6张图片

下面我们给一个Word 2010的文档添加一个自定义Ribbon。

首先准备customUI.xml文件,写入如下内容:

    

        

            

                

                    

你可能感兴趣的:(c#,ui,c/c++)