如何基于打开的邮件显示/隐藏 Outlook 功能区 (VSTO)?

时间:2021-04-12 09:17:29

标签: c# vsto outlook-addin

目前,我创建了一个自定义 VSTO Outlook 附加组件,并使其适用于我们生成的电子邮件。但是,即使用户打开其他邮件,此自定义功能区也会始终显示。所以我的问题是:当且仅当打开的邮件满足某些条件时,才可以显示/隐藏功能区选项卡吗?如主题包含指定词。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。定义功能区回调,尤其是您会对 getVisible 感兴趣,并在需要隐藏或显示功能区控件时使用 IRibbonUI.InvalidateIRibbonUI.InvalidateControlgetVisible 回调具有以下签名:

    
C#: bool GetVisible(IRibbonControl control)

VBA: Sub GetVisible(control As IRibbonControl, ByRef visible)

C++: HRESULT GetVisible([in] IRibbonControl *pControl, [out, retval] VARIANT_BOOL *pvarfVisible)

Visual Basic: Function GetVisible(control As IRibbonControl) As Boolean

例如,如果插件编写器为按钮实现了 getImage 回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存的图像而不是回忆程序。此过程对控件保持原位,直到加载项使用 InvalidateControl 方法发出缓存值无效的信号,此时再次调用回调过程并缓存返回响应。

在以下系列文章中阅读有关 Fluent UI(又名 Ribbon UI)的更多信息: