如何仅在单击收件箱和sentitems文件夹时显示Outlook功能区?

时间:2015-10-06 14:51:37

标签: c#-4.0 outlook-addin

我正在开发一个Outlook加载项。我添加了一个带有一些控件的功能区,如下拉列表,复选框等。

我想仅在选择“收件箱”文件夹或“已发送邮件”文件夹时显示功能区。无论如何我能隐藏并展示我的缎带吗?

我尝试了一些方法,例如将功能区控件加载为xml文件,但是如果尝试使用功能区作为xml方式,我的功能区甚至不会加载。

我也试过这个。 Outlook Ribbon Customization

1 个答案:

答案 0 :(得分:0)

您需要在Ribbon XML标记中使用getVisible回调,以便能够动态更新运行时的控件可见性。

Ribbon UI(又名Fluent UI)控件在MSDN的以下系列文章中有详细介绍:

当资源管理器因用户操作或程序代码转到新文件夹时,会触发Explorer类的FolderSwitch事件。因此,您可以调用IRibbonUI接口的InvalidateInvalidateControl方法,这些方法会强制主机应用程序刷新UI控件的缓存值。有关详细信息,请参阅Overview of the IRibbonUI Object

因此,当您需要显示控件的文件夹触发FolderSwitch事件时,您只需调用Invalidate方法并在getVisible回调中返回true。这就是全部!

  

我尝试了一些方法,例如将功能区控件加载为xml文件,但是如果尝试使用功能区作为xml方式,我的功能区甚至不会加载。

默认情况下,如果VSTO加载项尝试操作Microsoft Office用户界面(UI)并失败,则不会显示任何错误消息。但是,您可以将Microsoft Office应用程序配置为显示与UI相关的错误的消息。您可以使用这些消息来帮助确定未显示自定义功能区的原因,或者为何显示功能区但未显示控件的原因。在How to: Show Add-in User Interface Errors文章中详细了解相关内容。