Ribbon1: 在Office菜单中添加项目

来源:互联网 发布:蒋介石发动内战数据 编辑:程序博客网 时间:2024/04/29 20:41
Office菜单就是应用程序窗口左上角的一个小的应用程序按钮,这个按钮被称作Office按钮,包含一些通用的操作或命令,例如打印、保存和发布。定制Office菜单时,其下的命令将影响整个文档,而不是文档的特定部分,例如段落或字体格式。
Office菜单使用下面的XML标记:
        <officeMenu><!--                Everything else goes here            --></officeMenu>

下表列出了Office菜单的子元素。

对象用来做什么control引用通用控件对象,能够表现其它对象例如按钮、拆分按钮、组,等button引用通过正常的单击就能执行某类操作的按钮控件
checkbox 引用复选框控件gallery引用库控件toggleButton引用切换按钮,在True/False值之间切换menuSeparator引用菜单分隔条项splitButton引用能够用于容纳其它控件例如按钮控件的拆分按钮menu引用能够用于容纳其它控件例如按钮控件的菜单控件dynamicMenu引用动态菜单,能够在运行时接受动态的XML内容


下图为定制Excel中Office菜单的一个示例。在Office菜单中添加了一个拆分按钮My Tools,包含两个组My Toolset1和My Toolset2。
OfficeMenu1
在这个示例中,我们创建了包含菜单(根据特定任务组织的几个按钮)的拆分按钮,XML代码如下:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"><ribbon startFromScratch="false"><officeMenu><splitButton id="rxsbtn"       insertBeforeMso="FilePrintMenu"><button         id="rxbtnSplitMain"         label="My Tools"         imageMso="CreateModule"/><menu          id="rxmnu"          itemSize="large"><menuSeparator           id="rxsep1"           title="My Toolset 1"/><buttonid="rxbtnEmailSheet"imageMso="FileSendAsAttachment"label="E-mail sheet as attachment"            description="E-mail the active sheet as an attachment"            onAction="rxshared_click"/><buttonid="rxbtnEmailSupport"imageMso="MessageToAttendeesMenu"label="E-mail technical support"             description="E-mail technical support about issues on this application..."            onAction="rxshared_click"/><buttonid="rxbtnEmailBug"imageMso="ResearchPane"label="E-mail a bug"             description="E-mail technical support about bugs found on this application..."            onAction="rxshared_click"/><menuSeparator           id="rxsep2"           title="My Toolset 2"/><buttonid="rxbtnPrintPDF"imageMso="FilePrint"label="Print to PDF"             description="Print active sheet to PDF file format"            onAction="rxshared_click"/></menu></splitButton></officeMenu></ribbon></customUI>

实际上,菜单控件也可以提供相同的定制而不须像拆分按钮那样的中间步骤,例如上例可以修改如下:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"><ribbon startFromScratch="false"><officeMenu><menu          id="rxmnu"          insertBeforeMso="FilePrintMenu"          label="My Tools"          imageMso="CreateModule"          itemSize="large"><menuSeparator           id="rxsep1"           title="My Toolset 1"/><buttonid="rxbtnEmailSheet"imageMso="FileSendAsAttachment"label="E-mail sheet as attachment"            description="E-mail the active sheet as an attachment"            onAction="rxshared_click"/><buttonid="rxbtnEmailSupport"imageMso="MessageToAttendeesMenu"label="E-mail technical support"             description="E-mail technical support about issues on this application..."            onAction="rxshared_click"/><buttonid="rxbtnEmailBug"imageMso="ResearchPane"label="E-mail a bug"             description="E-mail technical support about bugs found on this application..."            onAction="rxshared_click"/><menuSeparator           id="rxsep2"           title="My Toolset 2"/><buttonid="rxbtnPrintPDF"imageMso="FilePrint"label="Print to PDF"             description="Print active sheet to PDF file format"            onAction="rxshared_click"/></menu></officeMenu></ribbon></customUI>

结果如下图所示:
OfficeMenu2
可以看出,实现的效果并没有太大的差异。如果认真观察,就会发现拆分按钮在箭头和按扭之间有一条分隔线,而菜单则没有。
上面的示例是在Office菜单中添加自已自定义的项目,当然也可以在Office菜单里的内置元素中添加自定义项目或内置项目,此时您需要知道在什么元素中放置项目,下表列出了Office菜单元素。
表:Office菜单元素

元素类型IDMSO应用于新建按钮FileMenuExcel/Access/Word打开按钮FileOpenExcel/Word打开按钮FileOpenDatabaseAccess保存按钮FileSaveExcel/Word/Access另存为拆分按钮FileSaveAsMenuExcel/Word另存为拆分按钮FileSaveAsMenuAccessAccess打印拆分按钮FilePrintMenuExcel/Word/Access准备菜单FilePrepareMenuExcel/Word管理菜单FileManageMenuAccess发送菜单FileSendMenuExcel/Word电子邮件按钮FileSendAsAttachmentAccess发布菜单MenuPublishExcel/Word/Access关闭按钮FileCloseExcel/Word关闭数据库按钮FileCloseDatabaseAccess