在选项卡上使用 idQ 时,Word 功能区似乎忽略了 insertAfterMso

Word ribbon appears to ignore insertAfterMso when using idQ on tab

我有一个功能区需要放在 Word 中的 HomeTab(或任何其他内置选项卡)之后。但是 Word 似乎忽略了 insertAfterMso(和 insertBeforeMso)属性。

我也尝试使用 insertAfterQ/insertBeforeQ,但我无法让它们与内置选项卡一起使用。

色带片段 XML:

  <customUI 
      onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui"  
      xmlns:cstm1="myns"
      xmlns:cstm2="myns2">
  <ribbon>
    <tabs>
      <tab 
          idQ="cstm1:MyCustomTab" 
          label="My Custom Tab"
          getVisible="MyCustomTab_getVisible"
          insertAfterMso="HomeTab">
    </tabs>
  </ribbon>
</customUI>

我怀疑它可能与 idQ 属性的使用有关,但我需要该功能,所以我无法删除它:-/

请注意,该选项卡显示在 Office 功能区上,但它位于功能区的最右端,就像没有添加 insertAfterMso 属性一样。

功能区 XML 中的 customUI 元素没有此类属性。相反,您需要为自定义选项卡元素指定 insertAfterMso 属性:

<customUI onLoad="Ribbon_Load" 
      xmlns="http://schemas.microsoft.com/office/2006/01/customui"  
      xmlns:cstm1="myns"
      xmlns:cstm2="myns2">
  <ribbon>
    <tabs>
      <tab id="myCustomTab"
           insertAfterMso="HomeTab"
           label="My Custom Tab"
           getVisible="MyCustomTab_getVisible">
    </tabs>
  </ribbon>
</customUI>

默认情况下,如果 VSTO 加载项尝试操作 Microsoft Office 用户界面 (UI) 但失败,则不会显示任何错误消息。但是,您可以将 Microsoft Office 应用程序配置为显示与 UI 相关的错误消息。您可以使用这些消息来帮助确定自定义功能区未出现的原因,或者显示功能区但未显示控件的原因。参见 How to: Show Add-in user interface errors

使用 idQ 属性而不是常规 id 属性来标识选项卡的原因是当多个 VSTO 插件需要修改特定选项卡的内容时。

事实证明,如果你想控制选项卡的位置,通过使用insertAfterMsoinsertBeforeMso属性,你需要在all[=28中这样做=] AddIns 修改目标选项卡 - 仅将属性添加到其中一个 AddIns not 在所有情况下都不够。

我怀疑如果您使用 insertAfterQinsertBeforeQ 也是如此。

AddIn 加载顺序会影响您是否遇到这种情况。

所以我的标记最初是正确的 - 但它被我的辅助 VSTO 加载项“破坏”了。