在Outlook中使用VSTO访问ribbon中的控件

本文关键字:ribbon 访问 控件 Outlook VSTO | 更新日期: 2023-09-27 18:06:15

我试图访问一个标签在builtIn ribbon和试图改变其可见性在后台工作。但是这行不通。

My Code is

Globals.Ribbons.MailReadItemRibbon.verifyLabel.Visible = true;

如果有人知道我做错了什么。请帮助。

在Outlook中使用VSTO访问ribbon中的控件

首先,你不应该从次级线程访问任何UI控件。只允许在主线程上对UI进行任何更改。您可以考虑使用控件。调用方法,该方法在拥有控件的底层窗口句柄的线程上执行委托。

其次,Fluent UI(又名Ribbon UI)从诞生之初就是静态的。唯一可能的动态性是回调。因此,我建议使用IRibbonUI的Invalidate或InvalidateControl方法的回调。查看以下文章中的示例代码:

  • 第十一章:创建动态功能区自定义(1/2)
  • 第11章:创建动态功能区自定义(2/2)

对于外接程序实现的每个回调,响应都被缓存。例如,如果外接程序编写器为按钮实现getImage回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存的图像,而不是调用该过程。这个过程一直保持在原来的位置,直到外接程序使用Invalidate方法发出缓存值无效的信号,此时再次调用回调过程并缓存返回的响应。

Fluent UI(又名Ribbon UI)在以下系列文章中有深入的描述:

  • 为开发人员定制2007 Office Fluent功能区(1/3)
  • 为开发人员定制2007 Office Fluent功能区(2/3)
  • 为开发人员定制2007 Office Fluent功能区(3/3)