分享

细品RibbonX(44):在Office菜单中添加项目

 yuxinrong 2009-12-07
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"/>
<button
		id="rxbtnEmailSheet"
		imageMso="FileSendAsAttachment"
		label="E-mail sheet as attachment"
            description="E-mail the active sheet as an attachment"
            onAction="rxshared_click"/>
<button
		id="rxbtnEmailSupport"
		imageMso="MessageToAttendeesMenu"
		label="E-mail technical support" 
            description="E-mail technical support about issues on this application..."
            onAction="rxshared_click"/>
<button
		id="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"/>
<button
		id="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"/>
<button
		id="rxbtnEmailSheet"
		imageMso="FileSendAsAttachment"
		label="E-mail sheet as attachment"
            description="E-mail the active sheet as an attachment"
            onAction="rxshared_click"/>
<button
		id="rxbtnEmailSupport"
		imageMso="MessageToAttendeesMenu"
		label="E-mail technical support" 
            description="E-mail technical support about issues on this application..."
            onAction="rxshared_click"/>
<button
		id="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"/>
<button
		id="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 应用于
新建 按钮 FileMenu Excel/Access/Word
打开 按钮 FileOpen Excel/Word
打开 按钮 FileOpenDatabase Access
保存 按钮 FileSave Excel/Word/Access
另存为 拆分按钮 FileSaveAsMenu Excel/Word
另存为 拆分按钮 FileSaveAsMenuAccess Access
打印 拆分按钮 FilePrintMenu Excel/Word/Access
准备 菜单 FilePrepareMenu Excel/Word
管理 菜单 FileManageMenu Access
发送 菜单 FileSendMenu Excel/Word
电子邮件 按钮 FileSendAsAttachment Access
发布 菜单 MenuPublish Excel/Word/Access
关闭 按钮 FileClose Excel/Word
关闭数据库 按钮 FileCloseDatabase Access

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约