事实证明,使用“ContextMenuMultipleItems”idMso可以与添加的“getVisible”方法一起工作。我的XML现在看起来像:
<?xml version="1.0" encoding="utf-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2009/07/customui" loadImage="GetImage">
<contextMenus>
<contextMenu idMso="ContextMenuCalendarItem">
<button id="MyContextMenuCalendarItem"
label="Copy To Google Calendar"
image="Google_Calendar_Logo.png"
onAction="CopyToGoogleCalendar_Click"/>
</contextMenu>
<contextMenu idMso="ContextMenuMultipleItems">
<button id="MyContextMenuMultipleItems"
label="Copy To Google Calendar"
image="Google_Calendar_Logo.png"
getVisible="ContextMenuMultipleItems_IsVisible"
onAction="CopyToGoogleCalendar_Click"/>
</contextMenu>
</contextMenus>
</customUI>
ContextMenuMultipleItems\u IsVisible如下所示:
public bool ContextMenuMultipleItems_IsVisible(Office.IRibbonControl control)
{
if (control.Context is Outlook.Selection)
{
Outlook.Selection selection = control.Context as Outlook.Selection;
if (selection[1] is Outlook.AppointmentItem)
return true;
}
return false;
}