将控件添加到Office(VSTO)中的现有功能区组

时间:2010-10-05 07:29:07

标签: c# .net ms-office vsto office-2010

我找到了很多关于如何将新组添加到现有功能区的示例,这很好用。

我无法弄清楚的是如何在现有功能区上向现有组添加新控件。假设我想将自己的命令添加到“查看”选项卡上的“校对”组。

我正在VS2010中为Office2010开发这个,但我想同样的方法也适用于Office 2007.

任何指针或帮助都表示赞赏,或者如果不可能做到(没有太多黑客攻击),我也可以接受它。

2 个答案:

答案 0 :(得分:8)

不幸的是,这是不可能的。您只能在Office 2007/2010中向自定义组添加控件。

内置组实际上与您可能添加的自定义组不同。例如,您将看到例如内置组(例如字体和段落格式的组)在调整应用程序窗口大小方面表现不同。

答案 1 :(得分:1)

虽然您无法修改内置组,但您可以隐藏它们。隐藏内置组后,您可以将其替换为已添加控件的外观。您需要知道要隐藏的组的ID以及要重新创建它的组的内容。该网站提供了详细信息:Change built-in groups in the Ribbon。但是有一个警告,因为您没有修改组,重新创建的组将不会反映Microsoft在不同版本的Office中制作的组中的标准更改。

这是custoumUI.xml,它隐藏了内置的校对组,并将其替换为该组的Excel 2007版本的副本:

<?xml version="1.0"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <ribbon>
    <tabs>
      <!-- Point to the Built-in tab to the ribbon -->
      <tab idMso="TabReview">
        <!-- Set visible to false for native Proofing group-->
        <group idMso="GroupProofing" visible="false"/>
        <!-- Add custom Proofing group -->
        <group insertBeforeMso="GroupProofing" label="Proofing" id="DupProofing">
          <button idMso="Spelling" size="large"/>
          <toggleButton idMso="ResearchPane" size="large"/>
          <button idMso="Thesaurus" size="large"/>
          <button idMso="TranslationPane" size="large"/>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>