动态更改检查器自定义功能区控件

本文关键字:自定义 功能区 控件 检查 动态 | 更新日期: 2023-09-27 17:59:08

在我的Outlook加载项中,我最初为检查员分配了一个自定义功能区(一个带有控件的新组),以支持我手动创建的一些邮件的一些功能。当我打开每个邮件项目时,无论是商店还是文件夹,都会显示此自定义选项卡。我想让这个选项卡只对我手动创建的自定义邮件项目的检查员可见。

下面是xml的一个片段,我将其添加为代码中检查器的自定义UI。我添加了一个回调方法来执行以设置可见性(GetCustomGroupVisible)。

  <ribbon>
    <tabs>
      <tab idMso="TabReadMessage">
        <group id="MyCustomGroup"  insertBeforeMso="GroupMailDelete" getVisible="GetCustomGroupVisible">
          <button id="Button1" size="large" onAction="ButtonClick" />
          <button id="Button2" size="large" onAction="ButtonClick" />
        </group>
      </tab>
    </tabs>
  </ribbon>

 // Callback method
 public bool GetCustomGroupVisible(IRibbonControl control)
 {
     bool makeVisible = false;           
     if ( // this is one of my custom mails !)
      {
        makeVisible = true;
      }
      return makeVisible;
  }

我的问题是,当我打开一个新的检查器时,有时不会调用上面显示的回调方法"GetCustomGroupVisible"。为什么会这样?每次打开新的检查器时,我应该做些什么来执行这个回调方法。我错过了什么?

动态更改检查器自定义功能区控件

当NewInspector事件触发时,您需要强制功能区更新。调用IRibbonUI.Invalidate.IRibbonUI可以从OnLoad功能区回调中检索(必须在功能区XML中指定)。