Поделиться через


Добавление команд в контекстные меню

В этом разделе показано, как добавить команды в контекстное меню в Приложение Office ликации с помощью надстройки VSTO.

Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO. См. сведения о функциях, доступных по Приложение Office и типу проекта.

Добавление команд в контекстные меню в Office

  1. Добавьте элемент Лента (XML) в проект уровня документа или надстройки VSTO. Дополнительные сведения см. в статье "Практическое руководство. Начало настройки ленты". In

  2. Вобозревателе решенийвыберите файл ThisAddIn.cs или ThisAddIn.vb.

  3. В строке меню выберите Вид>Код.

    Этот файл класса ThisAddin откроется в редакторе кода.

  4. Добавьте следующий код в класс ThisAddin . Этот код переопределяет метод CreateRibbonExtensibilityObject и возвращает XML-класс ленты в приложение Office.

    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
          return new Ribbon1();
    }
    
  5. В обозревателе решенийвыберите XML-файл ленты. По умолчанию XML-файл ленты называется Ribbon1.xml.

  6. В строке меню выберите Вид>Код.

    XML-файл ленты открывается в редакторе кода.

  7. В редакторе кода добавьте XML, описывающий контекстное меню и элемент управления, который требуется добавить в контекстное меню.

    В следующем примере элементы управления "кнопка", "меню" и "коллекция" добавляются в контекстное меню для документа Word. Идентификатор элемента управления этого контекстного меню — ContextMenuText. Полный список идентификаторов сочетаний клавиш Office 2010 см. в файлах справки Office 2010: идентификаторы элементов управления пользовательским интерфейсом Office fluent.

    <?xml version="1.0" encoding="UTF-8"?>
    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
      <contextMenus>
        <contextMenu idMso="ContextMenuText">
          <button id="MyButton" label="My Button" insertBeforeMso="HyperlinkInsert" onAction="GetButtonID" />
          <menu id="MySubMenu" label="My Submenu" >
            <button id="MyButton2" label="Button on submenu" />
          </menu>
          <gallery id="galleryOne" label="My Gallery">
            <item id="item1" imageMso="HappyFace" />
            <item id="item2" imageMso="HappyFace" />
            <item id="item3" imageMso="HappyFace" />
            <item id="item4" imageMso="HappyFace" />
          </gallery>
        </contextMenu>
      </contextMenus>
    </customUI>
    
  8. В обозревателе решений, выберите файл MyRibbon.cs или MyRibbon.vb.

  9. Добавьте метод обратного Ribbon1 вызова в класс для каждого элемента управления, который требуется обрабатывать.

    Следующий метод обратного вызова обрабатывает кнопку My Button . Этот код добавляет строку в активный документ в текущем расположении курсора.

    public void GetButtonID(Office.IRibbonControl control)
    {
        Microsoft.Office.Interop.Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the context menu named My Button.";
    }