在 appointmentTab 附近显示 outlook 功能区

show outlook ribbon near appointmentTab

我通过 ribbonXML 创建了新的 outlook 功能区

我要展示这个功能区

1. 在 Appointment\Meeting window

2. 在 'Appointment' 选项卡附近的 CalendarItems 中,当从日历视图中选择约会时

我可以显示两个选项,但不能在一个功能区中一起显示。

"contextualTabs" - 在 calendarItems 中显示选项卡,

"TabAddins" - 根据 C# 代码

仅在 appointment\meeting window 中显示选项卡

我希望此功能区显示在这两个中cases.How我可以吗?

我的代码:

<ribbon>
  <tabs>
    <tab idMso="TabAddIns" label="MyTab">
      <group id="group1" label="save">
        <button id="btnSaveAs" onAction="btnSaveAs_Click" 
                imageMso="FileSave"/>
      </group>
    </tab>
  </tabs>

 <contextualTabs>      
   <tabSet idMso="TabSetAppointment">
     <tab id="TabAppointment" label="MyTab">
       <group id="MyGroup" label="save">
         <button id="btnSaveAppAs" onAction="btnSaveAs_Click" label="save" 
                 imageMso="FileSave"/>
       </group>
     </tab>
   </tabSet>
 </contextualTabs>
</ribbon>

C#:(因为仅在 appointment\meeting window 中显示功能区)

public string GetCustomUI(string ribbonID)
    {
        if(ribbonID=="Microsoft.Outlook.Appointment")
            return GetResourceText("OutlookAddIn.Ribbon.xml");
        if (ribbonID == "Microsoft.Outlook.MeetingRequest")
            return GetResourceText("OutlookAddIn.Ribbon.xml");
        return null;
    }

您似乎需要 return 一个适当的功能区 XML 标记用于 Explorer 功能区 ID 值。尝试调试 GetCustomUI 方法并查看传递了哪些值。

在 MSDN 中的以下文章中阅读有关功能区 UI(又名 Fluent UI)的更多信息:

我找到了解决方案。

我将这两个选项放在两个单独的 xml 文件中并修复了 getcustomUI

Ribbon.xml:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"     onLoad="Ribbon_Load">
<ribbon>
  <tabs>
    <tab idMso="TabAddIns" label="MyTab">
      <group id="group1" label="save">
        <button id="btnSaveAs" onAction="btnSaveAs_Click" 
                imageMso="FileSave"/>
      </group>
    </tab>
  </tabs>
</ribbon>
</customUI>

日历工具Ribbon.xml:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"     onLoad="Ribbon_Load">
<ribbon>
 <contextualTabs>      
   <tabSet idMso="TabSetAppointment">
     <tab id="TabAppointment" label="MyTab">
       <group id="MyGroup" label="save">
         <button id="btnSaveAppAs" onAction="btnSaveAs_Click" label="save" 
             imageMso="FileSave"/>
       </group>
    </tab>
   </tabSet>
  </contextualTabs>
</ribbon>
</customUI>

C#:

   public string GetCustomUI(string ribbonID)
    {
        if (ribbonID == "Microsoft.Outlook.Appointment")
            return GetResourceText("OutlookAddIn.Ribbon.xml");
        if (ribbonID == "Microsoft.Outlook.MeetingRequest.Read")
            return GetResourceText("OutlookAddIn.Ribbon.xml");
        return GetResourceText("OutlookAddIn.CalendarToolsRibbon.xml");
    }