如何在Outlook的内嵌式「Message」功能区添加按钮?
Outlook内嵌式回复功能区添加自定义按钮的解决方法
内嵌式回复的功能区确实需要特定的Ribbon Control ID,和你之前用的新建邮件/弹出式回复的Message功能区不是同一个。
核心ID区分
- 常规新建邮件、弹出式回复的Message功能区ID:
Microsoft.Outlook.Message - 内嵌式回复(Inline Response)对应的功能区ID:
Microsoft.Outlook.Mail.Read.InlineResponse
具体实现方式
用Ribbon XML的情况
在你的Ribbon配置XML里,新增针对这个ID的按钮定义,示例如下:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon> <tabs> <!-- 针对常规Message功能区的按钮 --> <tab idMso="TabMessage" ribbonID="Microsoft.Outlook.Message"> <group id="CustomGroup1" label="自定义工具"> <button id="CustomBtn1" label="常规操作" onAction="Btn_Click" /> </group> </tab> <!-- 针对内嵌式回复的按钮 --> <tab idMso="TabMessage" ribbonID="Microsoft.Outlook.Mail.Read.InlineResponse"> <group id="CustomGroup2" label="内嵌回复工具"> <button id="CustomBtn2" label="内嵌回复操作" onAction="Btn_Click" /> </group> </tab> </tabs> </ribbon> </customUI>
用VS Ribbon设计器的情况
- 打开Ribbon设计器,右键空白区域选「属性」
- 在
RibbonType属性里,添加Microsoft.Outlook.Mail.Read.InlineResponse,和原来的Microsoft.Outlook.Message用逗号分隔 - 把自定义按钮拖到对应的组里,保存后重新生成Add-in
注意事项
- 测试时要确保内嵌回复窗口完全激活(点击邮件正文的「回复」按钮,出现内嵌编辑区域)
- 如果按钮还是不显示,检查你的Add-in是否在内嵌回复场景下被加载:可以在
ThisAddIn_Startup方法里加调试输出,确认触发时机 - 排除其他插件冲突:暂时禁用其他Outlook Add-in,单独测试你的自定义功能
内容的提问来源于stack exchange,提问作者user2011565
相关产品推荐
相关产品推荐

