XML-ленты
Элемент Лента (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)
Элемент Лента (XML) можно добавить в любой проект Office из диалогового окна Добавление нового элемента.Visual Studio автоматически добавляет в проект следующие файлы.
XML-файл ленты.В этом файле определяется пользовательский интерфейс ленты.Используйте этот файл для добавления элементов пользовательского интерфейса — вкладок, групп и элементов управления.Дополнительные сведения см. в подразделе Справочные сведения о XML-файле ленты.
Файл кода ленты.Этот файл содержит класс ленты.Этому классу присваивается имя, указанное для элемента Лента (XML) в диалоговом окне Добавление нового элемента.Приложения Microsoft Office используют экземпляр этого класса для загрузки пользовательской ленты.Дополнительные сведения см. в подразделе Справочные сведения о классе ленты.
По умолчанию эти файлы добавляют пользовательскую группу на вкладку ленты Надстройки.
Отображение пользовательской группы в приложении Microsoft Office
После добавления в проект элемента Лента (XML), в класс ThisAddin, ThisWorkbook или ThisDocument необходимо добавить код, который перекроет метод CreateRibbonExtensibilityObject и вернет приложению Office экземпляр класса XML-лент.
В следующем примере переопределяется метод CreateRibbonExtensibilityObject, и возвращается XML-класс ленты с именем MyRibbon.
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-файле ленты атрибут, который идентифицирует метод обратного вызова в коде.
Определите метод обратного вызова в классе ленты.
Примечание |
---|
В 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 для методов обратного вызова, создаваемых в файле кода ленты.Если создать метод обратного вызова, которому не соответствует допустимая сигнатура, код скомпилируется, но, когда пользователь щелкнет элемент управления, ничего не произойдет.
Все методы обратного вызова имеют параметр 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 создает класс ленты в файле кода ленты.В него вручную необходимо добавить методы обратного вызова для элементов управления, находящихся на этой ленте.Этот класс реализует интерфейс Microsoft.Office.Core.IRibbonExtensibility.
В следующей таблице описаны методы по умолчанию этого класса.
Метод |
Описание |
---|---|
GetCustomUI |
Возвращает содержимое XML-файла ленты.Этот метод вызывается в приложениях Microsoft Office для получения XML-строки, определяющей пользовательский интерфейс ленты.Этот метод реализует метод IRibbonExtensibility.GetCustomUI.
Примечание
Метод GetCustomUI должен реализовываться только для возвращения содержимого XML-файла ленты, но не для инициализации надстройки.В частности, в методе GetCustomUI нельзя выводить диалоговые или другие окна.Иначе это может привести к некорректной работе пользовательской ленты.Если требуется выполнить какие-либо действия по инициализации надстройки, добавьте необходимый код в обработчик событий ThisAddIn_Startup.
|
OnLoad |
Присваивает параметр Microsoft.Office.Core.IRibbonControl полю ribbon.Приложения Microsoft Office вызывают этот метод при загрузке пользовательской ленты.Этот метод можно использовать для динамического обновления пользовательской ленты.Дополнительные сведения см. в технической статье Настройка пользовательского интерфейса Office (2007) "Лента" для разработчиков (часть 1 из 3). |
GetResourceText |
Вызывается методом GetCustomUI для получения содержимого XML-файла ленты. |
См. также
Задачи
Пошаговое руководство. Создание настраиваемой вкладки с помощью XML-лент