Как добавить пользовательскую кнопку ленты на вкладке отчета Outlook

#c# #outlook #vsto #outlook-addin

#c# #outlook #vsto #outlook-добавление

Вопрос:

Я хочу добавить свою пользовательскую кнопку ленты на вкладке «Отчет» Outlook. Я могу добавить кнопку ленты на вкладке «Главная» Outlook. Здесь я прикрепил изображение, на котором я хочу добавить свою пользовательскую кнопку ленты.

введите описание изображения здесь

Спасибо

Ответ №1:

XML-код ленты находится здесь,

 <ribbon>
    <tabs>
      <tab idMso="TabReadMessage">
        <group id="grpMessageRibbon" Label="My Group">
          <button id="btnTest" Label="My Button" size="large" />
        </group>
      </tab>
    </tabs>    
  </ribbon>
  

Загрузка XML ленты на основе идентификатора ленты.

   public string GetCustomUI(string ribbonID)
        {
            string ribbonXML = String.Empty;

            if (ribbonID == "Microsoft.Outlook.Report")
            {
                ribbonXML = GetResourceText("MicrosoftOutlookReport.xml");
            }

            return ribbonXML;
        }
  

Спасибо

Ответ №2:

idMso встроенной вкладки, показанной на скриншоте, является TabReadMessage . Вам просто нужно вернуть соответствующую разметку XML ленты в GetCustomUI обратном вызове.

Приложения Microsoft Office вызывают метод GetCustomUI для получения XML-строки, которая определяет пользовательский интерфейс вашей пользовательской ленты.

 public class Connect : Object, Extensibility.IDTExtensibility2, IRibbonExtensibility 
... 

public string GetCustomUI(string RibbonID) 
{ 

   StreamReader customUIReader = new System.IO.StreamReader("C:\RibbonXSampleCS\customUI.xml"); 

   string customUIData = customUIReader.ReadToEnd(); 

   return customUIData; 
 }
  

Обратите внимание, иногда вам нужно вернуть разметку XML для разных ribbonID значений, передаваемых в качестве аргумента. В этом случае вы получите onLoad обратный вызов (также для инспекторов).

     public string GetCustomUI(string ribbonID)
    {
        string ribbonXML = String.Empty;

        if (ribbonID == "Microsoft.Outlook.Mail.Read")
        {
            ribbonXML = GetResourceText("Trin_RibbonOutlookBasic.Ribbon1.xml");
        }

        return ribbonXML;
    }
  

Для получения дополнительной информации см. раздел Настройка ленты для Outlook.

Вы можете прочитать больше о Fluent UI (он же Ribbon UI) в следующей серии статей в MSDN:

Пожалуйста, помните, что по умолчанию, если надстройка VSTO пытается управлять пользовательским интерфейсом Microsoft Office и терпит неудачу, сообщение об ошибке не отображается. Однако вы можете настроить приложения Microsoft Office для отображения сообщений об ошибках, связанных с пользовательским интерфейсом. Вы можете использовать эти сообщения, чтобы помочь определить, почему пользовательская лента не отображается или почему лента отображается, но не отображаются элементы управления. Смотрите Как: Показать ошибки пользовательского интерфейса надстройки для получения дополнительной информации.