以编程方式在运行时控制office加载项中的功能区

时间:2012-10-14 22:06:55

标签: outlook ms-office ribbon office-addins

我正在创建一个Outlook加载项,它将打开一个新窗口并收集一些信息,然后再将其作为电子邮件发送。

要获取Outlook布局,我尝试在新的电子邮件对话框中创建一个任务窗格,只有当用户在资源管理器窗口中单击自定义按钮时才会显示该窗格。

现在,我想打开一个新邮件,并在单击自定义按钮时显示自定义功能区或选项卡。只有在从我的代码加载新电子邮件时,才能看到此功能区/选项卡。当用户单击“新建电子邮件”时,必须加载默认功能区。

我的问题是我找不到在运行时以编程方式修改功能区的方法。 作为替代方案,简单地隐藏整个色带可能是一种解决方案。

我到处搜索过,无法确认或否认可以在运行时控制功能区。 任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

您需要在加载项的同一个类中实现IDTExtensibility2IRibbonExtensibility接口,以便在Outlook中自定义功能区界面。

IRibbonExtensibility.GetCustomUI方法应返回配置功能区的XML - 有关Outlook中不同窗口的a list of the IDs,请参阅MSDN,每个窗口都有不同的功能区。根据您问题中的描述,我认为您需要的是Microsoft.Outlook.Mail.Compose

请参阅this Q+A了解样本。

通过在代码中实现不同的回调,可以将自定义功能区设计为仅在满足条件时才可见。