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


XML-ленты

Обновлен: Ноябрь 2007

Применение

Сведения, приведенные в данном разделе, относятся только к указанным проектам Visual Studio Tools for Office и версиям Microsoft Office.

Тип проекта

  • Проекты уровня документа

  • Проекты уровня приложения

Версия Microsoft Office

  • Excel 2007

  • Word 2007

  • Outlook 2007

  • PowerPoint 2007

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

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

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

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

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

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

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

Отображение пользовательской группы в приложении Microsoft Office

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

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

Protected Overrides Function CreateRibbonExtensibilityObject() As  _
Microsoft.Office.Core.IRibbonExtensibility
    Return New MyRibbon()
End Function
protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    return new MyRibbon();
}

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

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

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

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

Aa942866.alert_note(ru-ru,VS.90).gifПримечание.

В Outlook 2007 требуется дополнительный шаг. Дополнительные сведения см. в разделе Настройка ленты для Outlook.

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

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

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

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

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

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

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

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

Определите необходимые методы обратного вызова в классе ленты (в файле исходного кода ленты). К методу обратного вызова предъявляется ряд требований:

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

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

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

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

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

Public Sub OnActionCallback(ByVal control As Office.IRibbonControl, _
    ByVal isPressed As Boolean)

    If (control.Id = "checkBox1") Then
        MessageBox.Show("You clicked " + control.Id)
    Else
        MessageBox.Show("You clicked a different control.")
    End If

End Sub
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 version="1.0" encoding="UTF-8"?>
<customUI xmlns="https://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-файла ленты.

Элемент

Описание

customUI

Представляет пользовательскую ленту в проекте надстройки.

ribbon

Представляет ленту.

tabs

Представляет вкладки ленты.

tab

Представляет одну вкладку ленты.

group

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

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

Атрибут

Родительский элемент

Описание

onLoad

customUI

Метод, вызываемый приложением при загрузке ленты.

idMso

tab

Встроенная вкладка, отображаемая на ленте.

id

group

Группа.

label

group

Текст, отображаемый для группы.

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

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

Visual Studio Tools for Office автоматически создает класс ленты в файле исходного кода ленты. В него вручную необходимо добавить методы обратного вызова для элементов управления, находящихся на этой ленте. Этот класс реализует интерфейс Microsoft.Office.Core.IRibbonExtensibility.

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

Метод

Описание

GetCustomUI

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

Aa942866.alert_note(ru-ru,VS.90).gifПримечание.
Метод GetCustomUI должен реализовываться только для возвращения содержимого XML-файла ленты, но не для инициализации надстройки. В частности, в методе GetCustomUI нельзя выводить диалоговые или другие окна. Иначе это может привести к некорректной работе пользовательской ленты. Если требуется выполнить какие-либо действия по инициализации надстройки, добавьте необходимый код в обработчик событий ThisAddIn_Startup.

OnLoad

Присваивает параметр Microsoft.Office.Core.IRibbonControl полю ribbon. Приложения Microsoft Office вызывают этот метод при загрузке пользовательской ленты. Этот метод можно использовать для динамического обновления пользовательской ленты. Дополнительные сведения см. в технической статье Настройка пользовательского интерфейса Office (2007) "Лента" для разработчиков (часть 1 из 3).

GetResourceText

Вызывается методом GetCustomUI для получения содержимого XML-файла ленты.

См. также

Задачи

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

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

Обзор ленты

Настройка пользовательского интерфейса Office