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

时间:2018-04-12 14:36:07

标签: 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="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,它应该隐藏快速访问工具栏中的撤消按钮,但这也不起作用。

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

2 个答案:

答案 0 :(得分:3)

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

根据this,您只能从Scratch开始删除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>

答案 1 :(得分:1)

我会在此处留下(在@asdev posted与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>