C# 如何从快速访问工具栏隐藏按钮?

C# 如何从快速访问工具栏隐藏按钮?,c#,office-interop,office-addins,ribbonx,C#,Office Interop,Office Addins,Ribbonx,我有一个自定义的缎带,看起来像这样: <?xml version="1.0" encoding="UTF-8"?> <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load"> <backstage> <tab id="CustomTab" insertBeforeMso="TabInfo" title="CustomT

我有一个自定义的缎带,看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <backstage>
    <tab id="CustomTab" insertBeforeMso="TabInfo" title="CustomTab" label="CustomTab">
      <firstColumn>
        <group id="openGroup">
          <topItems>
            <button id="btnOpen" label="Search" onAction="OpenForm" />
            <button id="btnSave" label="Save" onAction="SaveForm" />
            <button id="btnSaveAs" label="Save As" onAction="SaveAsForm" />
          </topItems>
        </group>
      </firstColumn>
    </tab>
    <button idMso="FileSave" visible="false"/>
    <tab idMso="TabRecent" visible="false" />
    <tab idMso="TabSave" visible="false" />
    <tab idMso="TabShare" visible="false"/>
  </backstage>
</customUI>

虽然这在隐藏内置选项卡方面非常有效,但它不会从快速访问工具栏中隐藏“保存”按钮。
我查看了Office帮助文件,据推测,
FileSave
是保存按钮的ID,但它没有隐藏它。我还尝试了
Undo
,它应该会从快速访问工具栏中隐藏Undo按钮,但也不起作用


是否可以通过编程方式或通过自定义功能区隐藏快速访问工具栏中的元素?我的目标是Word、Excel和PowerPoint 2013和2016

您需要在XML中使用子元素qat和documentControls/SharedControl

根据你的经验,你只能从零开始移除qat。这意味着您必须定义所有要显示的元素!老实说,这不是很舒服

    <ribbon startFromScratch="true">
      <qat> 
        <sharedControls>
          <button idMso="FileSave" visible="true" />
          <button idMso="Cut" visible="true" />
          <button idMso="Copy" visible="true" />
          <button idMso="Paste" visible="true" />
          <button idMso="FileOpen" visible="true" />
        </sharedControls>
      </qat>        
      [..define other parts you want to show, tabs etc...]
    </ribbon>

[…定义要显示的其他部分、选项卡等]

您需要在XML中使用子元素qat和documentControls/sharedControls

根据你的经验,你只能从零开始移除qat。这意味着您必须定义所有要显示的元素!老实说,这不是很舒服

    <ribbon startFromScratch="true">
      <qat> 
        <sharedControls>
          <button idMso="FileSave" visible="true" />
          <button idMso="Cut" visible="true" />
          <button idMso="Copy" visible="true" />
          <button idMso="Paste" visible="true" />
          <button idMso="FileOpen" visible="true" />
        </sharedControls>
      </qat>        
      [..define other parts you want to show, tabs etc...]
    </ribbon>

[…定义要显示的其他部分、选项卡等]
我将把这个放在这里(在Word的常用选项卡和控件之间混合使用),以防对某人有所帮助

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon startFromScratch="true">
    <qat>
      <sharedControls>
        <control idMso="Undo" visible="true" />
        <button idMso="RedoOrRepeat" visible="true"/>
      </sharedControls>
    </qat>
    <tabs>
      <tab idMso="TabHome" visible="true"></tab>
      <tab idMso="TabInsert" visible="true"></tab>
      <tab idMso="TabWordDesign" visible="true"></tab>
      <tab idMso="TabPageLayoutWord" visible="true"></tab>
      <tab idMso="TabReferences" visible="true"></tab>
      <tab idMso="TabMailings" visible="true"></tab>
      <tab idMso="TabReviewWord" visible="true"></tab>
      <tab idMso="TabView" visible="true"></tab>
      <tab idMso="TabOutlining" visible="true"></tab>
    </tabs>
  </ribbon>
</customUI>

我将把这个放在这里(在Word的常用选项卡和控件之间混合使用),以防对某人有所帮助

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <ribbon startFromScratch="true">
    <qat>
      <sharedControls>
        <control idMso="Undo" visible="true" />
        <button idMso="RedoOrRepeat" visible="true"/>
      </sharedControls>
    </qat>
    <tabs>
      <tab idMso="TabHome" visible="true"></tab>
      <tab idMso="TabInsert" visible="true"></tab>
      <tab idMso="TabWordDesign" visible="true"></tab>
      <tab idMso="TabPageLayoutWord" visible="true"></tab>
      <tab idMso="TabReferences" visible="true"></tab>
      <tab idMso="TabMailings" visible="true"></tab>
      <tab idMso="TabReviewWord" visible="true"></tab>
      <tab idMso="TabView" visible="true"></tab>
      <tab idMso="TabOutlining" visible="true"></tab>
    </tabs>
  </ribbon>
</customUI>