是否可以为办公室功能区设置多个自定义选项卡?

时间:2013-08-22 01:38:43

标签: c# outlook vsto outlook-addin ribbon

我找不到任何文档来验证这个或任何工作示例

我想在下面创建类似xml的东西,但我认为这真的不可能。

<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2010/01/customui">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns" label="Ribbon1">
      </tab>

      <tab idMso="TabAddIns" label="Ribbon2">
      </tab>
    </tabs>
  </ribbon>

</customUI>

3 个答案:

答案 0 :(得分:10)

如果您使用现有标签,则可以有多个标签,然后设置idMso="exiting tabids"

现有标签ID应该是有效ID,可以找到here

如果您使用自己的自定义标签,请使用id="customtab1"代替idMso

customtab1 - 可以是任何有效的字符串

<强> EDITED

以下功能区xml工作

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns" label="Ribbon1">
        <group id="MyGroup"
               label="My Group">
        </group>
      </tab>
      <tab id="CustomAddin" label="Ribbon2">
      <group id="CustomAddinGroup"
             label="My Group">
      </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

尝试使用功能区设计器并转换为XML,并确保在ThisAddin.cs文件中添加以下代码

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
   return new Ribbon1();
}

答案 1 :(得分:2)

您不能有两个具有相同ID的标签(idMso =“TabAddIns”)。确保ID是唯一的。

答案 2 :(得分:2)

更改idMso的{​​{1}}并为您的标签指定自定义名称。

id

<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2010/01/customui"> <ribbon> <tabs> <tab id="Tab1" label="Ribbon1"> </tab> <tab id="Tab2" label="Ribbon2"> </tab> </tabs> </ribbon> </customUI> 用于指代托管功能区的应用程序中已存在的Microsoft对象。