将自定义功能区组添加到Word 2007中的现有自定义功能区组

时间:2010-06-16 09:54:25

标签: ms-word office-addins

如何将新组添加到现有(第三方)自定义功能区选项卡加载项?我知道我可以通过指定Tabs idMSo值来添加到盒子外带,但是如何为自定义功能区选项卡执行此操作。我已经尝试过自定义功能区的ID值,但它会复制功能区吗?还尝试了传递所需自定义选项卡ID的idMso和idQ属性,但没有成功。

我可以通过指定idMso值而不是自定义标签

将其添加到开箱即用标签组

问候

2 个答案:

答案 0 :(得分:4)

idQ是正确的方法。此属性允许您指定限定ID,即命名空间中的ID。内置了一些名称空间,例如mso,但也可以指定自定义名称空间。

关键是您需要xmlns:foo="bar"元素中的customUI属性与您尝试扩展的第三方加载项的customUI内声明的命名空间相匹配。< / p>

例如,假设我有以下第三方加载项的XML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<mso:customUI xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui"
              xmlns:foo="bar">
  <mso:ribbon>
    <mso:tabs>
      <mso:tab idQ="foo:someTab" label="an extensible custom tab">
        <mso:group id="someGroup" label="a custom group">
          <mso:button id="someButton" label="button" />
        </mso:group>
      </mso:tab>
    </mso:tabs>
  </mso:ribbon>
</mso:customUI>

现在,我想在另一个加载项或模板中使用新组扩展现有的foo:someTab。我在新加载项中定义了customUI,确保在customUI元素中指定相同的名称空间属性。然后,我使用idQ="foo:someTab"

引用现有标签
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <mso:customUI xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui"
                  xmlns:foo="bar">
      <mso:ribbon>
        <mso:tabs>
          <mso:tab idQ="foo:someTab" label="an extensible custom tab">
            <mso:group id="someOtherGroup" label="a different custom group">
              <mso:button id="someOtherButton" label="a different button" />
            </mso:group>
          </mso:tab>
        </mso:tabs>
      </mso:ribbon>
    </mso:customUI>

这会在单个自定义标签上生成两个组。可以使用相同的方法来扩展组和其他容器控件。

我通过仔细研究Office 2010 Ribbon UI XSD来了解这一点。不幸的是,它在XSD本身之外的文档很少。

答案 1 :(得分:0)

单词中的带状内容有点奇怪。基本上,我理解它的方式是Word通过GetCustomUI一次性地要求您添加任何想要包含的自定义UI,Ribbom声明,后台等。

这是你获得的唯一机会。一旦您告知自定义UI元素的XML,就无法动态添加按钮。但是,您可以取消隐藏隐藏的元素,以使其看起来像是在动态添加元素到功能区。

带有第三方功能区的Prob是Word已经从第三方应用程序获得了自定义用户界面,所以如果他们想要动态地向他们添加按钮,可能会遇到第三方会遇到的相同问题自己的丝带。

我相信Word会采取额外的步骤,允许您为“内置”色带添加按钮,但据我所知,这并不会扩展到自定义色带。