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


Пошаговое руководство. Создание настраиваемой вкладки с помощью XML-лент

В данном пошаговом руководстве демонстрируется, как создать настраиваемую вкладку ленты при помощи элемента Лента (XML).

Применение. Сведения этого раздела применяются к проектам уровня документа и уровня приложения для следующих приложений: Excel 2013 и Excel 2010; InfoPath 2013 и InfoPath 2010; Outlook 2013 и Outlook 2010; PowerPoint 2013 и PowerPoint 2010; Project 2013 и Project 2010; Visio 2013 и Visio 2010; Word 2013 и Word 2010. Дополнительные сведения см. в разделе Доступность функций по типам приложений Office и проектов.

В данном пошаговом руководстве рассмотрены следующие задачи:

  • Добавление кнопок к вкладке Надстройки.Вкладка Надстройки является вкладкой, определенной по умолчанию в XML-файле ленты.

  • Автоматизация Microsoft Office Word с помощью кнопок на вкладке Надстройки.

ПримечаниеПримечание

Отображаемые на компьютере имена или расположения некоторых элементов пользовательского интерфейса Visual Studio могут отличаться от указанных в следующих инструкциях.Эти элементы определяются используемым выпуском Visual Studio и его параметрами.Дополнительные сведения см. в разделе Параметры Visual Studio.

Обязательные компоненты

Ниже приведены компоненты, необходимые для выполнения данного пошагового руководства.

-

Выпуск Visual Studio 2012, включающий инструменты разработчика Microsoft Office. Дополнительные сведения см. в разделе [Настройка компьютера для разработки решений Office](bb398242\(v=vs.110\).md).
  • Word 2010 или Word 2013. 

ссылка на видео Для просмотра связанных демонстрационных видеороликов перейдите по ссылке How Do I: Use the Ribbon Designer to Customize the Ribbon in Excel?.

Создание проекта

Для начала следует создать проект надстройки Word.После этого следует настроить вкладку Надстройки данного документа.

Создание нового проекта

Создание вкладки надстройки

Для создания вкладки Надстройки, добавьте элемент Лента (XML) к проекту.После этого, в этом пошаговом руководстве, к этой вкладке будут добавлены кнопки.

Создание вкладки надстройки

  1. В меню Проект выберите команду Добавить новый элемент.

  2. В диалоговом окне Добавить новый элемент выберите элемент Лента (XML).

  3. Измените имя новой ленты на MyRibbon и нажмите кнопку Добавить.

    В конструкторе открывается файл MyRibbon.cs или MyRibbon.vb.XML-файл с именем MyRibbon.xml также добавляется к проекту.

  4. В обозревателе решений щелкните правой кнопкой мыши файл ThisAddin.cs или ThisAddin.vb, затем выберите команду Перейти к коду.

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

    Protected Overrides Function CreateRibbonExtensibilityObject() As  _
    Microsoft.Office.Core.IRibbonExtensibility
        Return New MyRibbon()
    End Function
    
    protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
    {
        return new MyRibbon();
    }
    
  6. В обозревателе решений щелкните правой кнопкой мыши проект MyRibbonAddIn, затем щелкните пункт Построение.Убедитесь, что проект строится без ошибок.

Добавление кнопок к вкладке надстроек

Цель этой надстройки — предоставить пользователям способ добавлять текст шаблона и специальную таблицу к активному документу.Для обеспечения интерфейса пользователя, добавьте две кнопки к вкладке Надстройки, изменив файл XML-ленты.Далее, в этом пошаговом руководстве будут определены методы обратного вызова для кнопок.Дополнительные сведения о XML-файлах ленты см. в разделе XML-ленты.

Добавление кнопок к вкладке "Надстройки"

  1. В обозревателе решений щелкните правой кнопкой мыши узел MyRibbon.xml, а затем нажмите кнопку Открыть.

  2. Замените содержимое элемента tab следующим XML-кодом.Этот XML-код заменяет метки группы элементов управления по умолчанию на Content, а также добавляет две новых кнопки с метками Insert Text и Insert Table.

    <tab idMso="TabAddIns">
        <group id="ContentGroup" label="Content">
            <button id="textButton" label="Insert Text"
                 screentip="Text" onAction="OnTextButton"
                 supertip="Inserts text at the cursor location."/>
            <button id="tableButton" label="Insert Table"
                 screentip="Table" onAction="OnTableButton"
                 supertip="Inserts a table at the cursor location."/>
        </group>
    </tab>
    

Автоматизация документа с использованием кнопок

Следует добавить методы обратного вызова onAction для кнопок Вставить текст и Вставить таблицу, чтобы выполнить действия при нажатии пользователем кнопок.Дальнейшие сведения о методах обратного вызова для элемента управления лента, см. XML-ленты.

Добавление методов обратного вызова для кнопок

  1. В обозревателе решений щелкните правой кнопкой мыши MyRibbon.cs или MyRibbon.vb, а затем нажмите кнопку Открыть.

  2. Добавьте следующий код в начало файла MyRibbon.cs или MyRibbon.vb.В этом коде создается псевдоним Microsoft.Office.Interop.Word для пространства имен.

    Imports Word = Microsoft.Office.Interop.Word
    
    using Word = Microsoft.Office.Interop.Word;
    
  3. Добавьте следующий метод в класс MyRibbon.Это — метод обратного вызова для кнопки Вставить текст, добавляющий строку к активному элементу по текущему положению курсора.

    Public Sub OnTextButton(ByVal control As Office.IRibbonControl)
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        currentRange.Text = "This text was added by the Ribbon."
    End Sub
    
    public void OnTextButton(Office.IRibbonControl control)
    {
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        currentRange.Text = "This text was added by the Ribbon.";
    }
    
  4. Добавьте следующий метод в класс MyRibbon.Это — метод обратного вызова для кнопки Вставить таблицу, добавляющий таблицу к активному элементу по текущему положению курсора.

    Public Sub OnTableButton(ByVal control As Office.IRibbonControl)
        Dim missing As Object = System.Type.Missing
    
        Dim currentRange As Word.Range = Globals.ThisAddIn.Application.Selection.Range
        Dim newTable As Word.Table = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add( _
                   currentRange, 3, 4)
    
        ' Get all of the borders except for the diagonal borders.
        Dim borders() As Word.Border = New Word.Border(6) {}
        borders(0) = newTable.Borders(Word.WdBorderType.wdBorderLeft)
        borders(1) = newTable.Borders(Word.WdBorderType.wdBorderRight)
        borders(2) = newTable.Borders(Word.WdBorderType.wdBorderTop)
        borders(3) = newTable.Borders(Word.WdBorderType.wdBorderBottom)
        borders(4) = newTable.Borders(Word.WdBorderType.wdBorderHorizontal)
        borders(5) = newTable.Borders(Word.WdBorderType.wdBorderVertical)
    
        ' Format each of the borders.
        For Each border As Word.Border In borders
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle
            border.Color = Word.WdColor.wdColorBlue
        Next
    End Sub
    
    public void OnTableButton(Office.IRibbonControl control)
    {
        object missing = System.Type.Missing;
        Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;
        Word.Table newTable = Globals.ThisAddIn.Application.ActiveDocument.Tables.Add(
        currentRange, 3, 4, ref missing, ref missing);
    
        // Get all of the borders except for the diagonal borders.
        Word.Border[] borders = new Word.Border[6];
        borders[0] = newTable.Borders[Word.WdBorderType.wdBorderLeft];
        borders[1] = newTable.Borders[Word.WdBorderType.wdBorderRight];
        borders[2] = newTable.Borders[Word.WdBorderType.wdBorderTop];
        borders[3] = newTable.Borders[Word.WdBorderType.wdBorderBottom];
        borders[4] = newTable.Borders[Word.WdBorderType.wdBorderHorizontal];
        borders[5] = newTable.Borders[Word.WdBorderType.wdBorderVertical];
    
        // Format each of the borders.
        foreach (Word.Border border in borders)
        {
            border.LineStyle = Word.WdLineStyle.wdLineStyleSingle;
            border.Color = Word.WdColor.wdColorBlue;
        }
    }
    

Проверка надстройки

При выполнении проекта открывается Word, и на ленте появляется вкладка с именем Надстройки.Insert Text и Insert Table на вкладке Надстройки.

Проверка надстройки

  1. Нажмите клавишу F5 для запуска проекта.

  2. Подтвердите, что вкладка Надстройки видима на ленте.

  3. Щелкните вкладку Надстройки.

  4. Подтвердите, что группа Содержимое видна на ленте.

  5. Щелкните кнопку Вставить текст в группе Содержимое.

    Строка добавляется к документу в текущее положение курсора.

  6. Щелкните кнопку Вставить таблицу в группе Содержимое.

    Таблица добавляется к документу в текущее положение курсора.

Следующие действия

Дополнительные сведения о настройке пользовательского интерфейса Office см. в следующих разделах:

См. также

Задачи

Пошаговое руководство. Создание настраиваемой вкладки с помощью конструктора лент

Основные понятия

XML-ленты

Другие ресурсы

Обзор ленты