Ribbon XML

Элемент ленты (XML) позволяет настроить ленту с помощью XML. Используйте элемент ленты (XML), если вы хотите настроить ленту таким образом, который не поддерживается элементом ленты (визуальный конструктор). Сравнение того, что можно сделать с каждым элементом, см. в обзоре ленты.

Область применения: сведения в этом разделе относятся к проектам на уровне документа и проектам надстроек VSTO для следующих приложений: Excel; InfoPath 2013 и InfoPath 2010; Outlook; Powerpoint; Проекта; Visio; Слово. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Добавление элемента ленты (XML) в проект

Элемент Лента (XML) можно добавить в любой проект Office из диалогового окна Добавить новый элемент . Visual Studio автоматически добавляет в проект следующие файлы.

  • XML-файл ленты. Этот файл определяет пользовательский интерфейс ленты. Данный файл можно использовать для добавления элементов пользовательского интерфейса — вкладок, групп и элементов управления. Дополнительные сведения см. в руководстве по XML-файлу ленты далее в этом разделе.

  • Файл кода ленты. Этот файл содержит класс ленты. Класс имеет имя, указанное для элемента Лента (XML) в диалоговом окне Добавить новый элемент . Microsoft Приложение Office lications использует экземпляр этого класса для загрузки пользовательской ленты. Дополнительные сведения см. в разделе " Справочник по классу ленты" далее в этом разделе.

    По умолчанию эти файлы добавляют настраиваемую группу на вкладку надстроек на ленте.

Отображение настраиваемой ленты в microsoft Приложение Office lication

После добавления элемента ленты (XML) в проект необходимо добавить код в класс ThisAddin, ThisWorkbook или ThisDocument, который переопределяет CreateRibbonExtensibilityObject метод и возвращает xml-класс ленты в Приложение Office lication.

В следующем примере кода переопределяется метод CreateRibbonExtensibilityObject и возвращается XML-класс ленты с именем MyRibbon.

protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new MyRibbon();
}

Определение поведения пользовательской ленты

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

  • Назначьте атрибут элементу управления в XML-файле ленты, который идентифицирует метод обратного вызова в коде.

  • Определите метод обратного вызова в классе ленты.

Примечание.

Для Outlook необходимо будет выполнить еще одно действие. Дополнительные сведения см. в разделе "Настройка ленты" для Outlook.

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

Назначение методов обратного вызова элементам управления

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

<toggleButton id="toggleButton1" onAction="OnToggleButton1" />

onAction вызывается, когда пользователь выполняет основную задачу, связанную с конкретным элементом управления. Например, метод обратного вызова onAction выключателя вызывается, когда пользователь нажимает кнопку.

Метод, указываемый в атрибуте, может иметь любое имя. Тем не менее данное имя должно соответствовать имени метода, который определяется в файле кода ленты.

Элементам управления ленты можно назначать методы обратного вызова различного типа. Полный список методов обратного вызова, доступных для каждого элемента управления, см. в технической статье по настройке пользовательского интерфейса ленты Office (2007) для разработчиков (часть 3 из 3).

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

Определите методы обратного вызова в классе ленты в файле кода ленты. Метод обратного вызова должен удовлетворять ряду требований.

  • Он должен быть объявлен как открытый.

  • Его имя должно соответствовать имени метода обратного вызова, которое назначено элементу управления в XML-файле ленты.

  • Его сигнатура должна соответствовать сигнатуре метода обратного вызова, доступного для связанного элемента управления ленты.

    Полный список подписей метода обратного вызова для элементов управления лентой см. в технической статье по настройке пользовательского интерфейса ленты Office (2007) для разработчиков (часть 3 из 3). Visual Studio не поддерживает IntelliSense для методов обратного вызова, которые создаются в файле кода ленты. Если создать метод обратного вызова, который не соответствует допустимой сигнатуре, код будет скомпилирован, но, когда пользователь щелкнет элемент управления, ничего не произойдет.

    Все методы обратного вызова имеют параметр IRibbonControl , который представляет элемент управления, вызвавший метод. Этот параметр позволяет повторно использовать один и тот же метод обратного вызова для нескольких элементов управления. В следующем примере кода демонстрируется метод обратного вызова onAction , который выполняет различные задачи в зависимости от того, какой элемент управления щелкает пользователь.

    public void OnActionCallback(Office.IRibbonControl control, bool isPressed)
    {
        if (control.Id == "checkBox1")
        {
            MessageBox.Show("You clicked " + control.Id);
        }
        else
        {
            MessageBox.Show("You clicked a different control.");
        }
    }
    

Справочник по XML-файлу ленты

Вы можете определить настраиваемую ленту, добавив элементы и атрибуты в XML-файл ленты. По умолчанию XML-файл ленты содержит следующий XML-код.

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad">
  <ribbon>
    <tabs>
      <tab idMso="TabAddIns">
        <group id="MyGroup"
               label="My Group">
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>

В следующей таблице указаны элементы по умолчанию в XML-файле ленты.

Элемент Description
customUI Представляет настраиваемую ленту в проекте надстройки VSTO.
ribbon Представляет ленту.
Вкладки Представляет набор вкладок на ленте.
вкладка Представляет одну вкладку на ленте.
group Представляет группу элементов управления на вкладке ленты.

Эти элементы имеют атрибуты, определяющие внешний вид и поведение пользовательской ленты. В следующей таблице указаны атрибуты по умолчанию в XML-файле ленты.

Атрибут Родительский элемент Description
Onload customUI Определяет метод, который вызывается при загрузке ленты приложением.
idMso вкладка Определяет встроенную вкладку для отображения на ленте.
id group Идентифицирует группу.
label group Указывает текст, отображаемый в группе.

Элементы и атрибуты по умолчанию в XML-файле ленты представляют собой небольшое подмножество доступных элементов и атрибутов. Полный список доступных элементов и атрибутов см. в технической статье по настройке пользовательского интерфейса ленты Office (2007) для разработчиков (часть 2 из 3).

Справочник по классу ленты

Visual Studio создает класс ленты в файле кода ленты. Добавьте методы обратного вызова для элементов управления на ленте в этот класс. Этот класс реализует интерфейс IRibbonExtensibility.

В следующей таблице указаны методы по умолчанию в этом классе.

Метод Description
GetCustomUI Возвращает содержимое XML-файла ленты. Microsoft Приложение Office lications вызывает этот метод, чтобы получить XML-строку, которая определяет пользовательский интерфейс пользовательской ленты. Этот метод реализует метод GetCustomUI . Примечание.GetCustomUI Следует реализовать только для возврата содержимого XML-файла ленты; его не следует использовать для инициализации надстройки VSTO. В частности, не пытайтесь отображать диалоговые или прочие окна в своей реализации GetCustomUI . В противном случае пользовательская лента может работать неправильно. Если необходимо запускать код, который инициализирует надстройку VSTO, добавьте этот код в обработчик событий ThisAddIn_Startup .
OnLoad Назначает параметр IRibbonControl полю Ribbon . Microsoft Приложение Office lications вызывает этот метод при загрузке настраиваемой ленты. Это поле можно использовать для динамического обновления настраиваемой ленты. Дополнительные сведения см. в технической статье по настройке пользовательского интерфейса ленты Office (2007) для разработчиков (часть 1 из 3).
GetResourceText Вызывается методом GetCustomUI для получения содержимого XML-файла ленты.