【问题标题】:Outlook Add-in Ribbon Tab and ContextMenu Item using one Ribbon file使用一个功能区文件的 Outlook 加载项功能区选项卡和上下文菜单项
【发布时间】:2014-12-22 21:34:28
【问题描述】:

我目前有一个 Outlook 加载项,其中包含一个带有按钮(设计器)的功能区组,并且一切正常。我有一个通过功能区设计器 (XML) 添加的 contextmenuItem,它看起来像这样:

上下文菜单按钮:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load">
  <contextMenus>
  <contextMenu idMso="ContextMenuMailItem">
    <button id="MyContextMenuMailItem"
    label="Record To History"
    onAction="OnMyButtonClick"/>
  </contextMenu>
  </contextMenus>
</customUI>

功能区标签:

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabMail" insertAfterMso="GroupContactFind">
                <group id="RollbaseSettingsGroup" label="Rollbase Settings">
                    <button id="MyButton" onAction="MyButton_Click" label="MyButton" size="large" />
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

我可以在不指定以下代码的情况下让我的功能区单独工作,但我的 ContextMenu 不显示,我可以让我的 ContextMenu 单独工作,但我的功能区代码不显示。您能否建议我哪里出错了,以便我可以同时显示上下文菜单和功能区。

代码:

' This will allow the contextmenuItem to appear on an email Item
    Protected Overrides Function CreateRibbonExtensibilityObject() As Microsoft.Office.Core.IRibbonExtensibility
        Return New ContextMenuRibbon() 'This only does the contextmenu
    End Function

现在我想将此 contextmenuitem 添加到我当前的功能区项的代码中,以便我可以一次性访问两者。关于如何实现这一目标的任何建议? 我已经阅读了这篇文章并完成了here 所说的所有内容,但唯一的区别是我的功能区是功能区设计器,而我的 ContextMenuItem 是功能区 XML。

【问题讨论】:

    标签: vb.net outlook contextmenu ribbon-control


    【解决方案1】:

    您需要将两个 XML 部分合并为一个:

    <?xml version="1.0" encoding="UTF-8"?>
    <customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <tabs>
            <tab idMso="TabMail" insertAfterMso="GroupContactFind">
                <group id="RollbaseSettingsGroup" label="Rollbase Settings">
                    <button id="MyButton" onAction="MyButton_Click" label="MyButton" size="large" />
                </group>
            </tab>
        </tabs>
    </ribbon>
    <contextMenus>
       <contextMenu idMso="ContextMenuMailItem">
          <button id="MyContextMenuMailItem"
                  label="Record To History"
                  onAction="OnMyButtonClick"/>
        </contextMenu>
     </contextMenus>
     </customUI>
    

    【讨论】:

    • 是的,我已经尝试过了,但是我的图标丢失了。此外,我必须将每个功能转移到我的自定义功能区 UI 代码中。对吗?
    • 我不知道您是如何丢失图标的,但是您可以使用 getImage 回调动态加载它们。
    • 好吧,让我试一试。会尽快回复您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多