Как программно создать ленту и добавить к ней элементы управления?

Я хочу иметь одну ленту в офисе Microsoft, в которой у меня будут все мои надстройки. Допустим, есть 2 надстройки, каждая из которых представляет собой одну кнопку на ленте, которая затем открывает winform. Пользователь устанавливает первую надстройку, программа проверяет наличие установленной ленты, поскольку ее нет, добавляет ленту и кнопку, которая вызывает функцию надстроек.

Затем пользователь устанавливает вторую надстройку позже, которая вместо добавления той же ленты проверяет, есть ли уже лента с таким же именем, и, если она есть, добавляет кнопку только к уже установленной ленте, если нет (каким-то образом первая надстройка была удалена или что-то еще), она добавляет ленту с кнопкой.

Поэтому я подумал, что в событии ThisAddin_Startup я создаю экземпляр класса "RibbonController". В классе RibbonController я бы проверил существование лент. (Каждое дополнение имеет класс RibbonController)

Поскольку я довольно новичок в зоне программирования надстройки MS Office, мне нужна помощь в доступе к объектам лент и их программном создании, если он не был установлен ранее.

2 ответа

Решение

Я сделал Ribbon.xml для каждого надстройки, которая имеет такую ​​же структуру. Я установил "пространство имен" в каждом файле tape.xml, которое поможет каждый раз добавлять элементы управления на одну и ту же вкладку.

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" xmlns:x="NAMESPACE FOR EVERY TAB"> //the namespaces abreviation is "x"
    <ribbon>
        <tabs>
            <tab idQ="x:tab1" label="CommonTab" >
            ....

Затем я установил вкладки idQ с префиксом "x:", чтобы он знал пространство имен. Из каждой надстройки, которая использует ту же структуру XML, элементы управления на вкладке будут добавлены на одну вкладку.

Мы используем Add In Express на нашем рабочем месте. Он действительно прост в использовании и делает все. Это оплачивается, хотя.

Также, пожалуйста, посмотрите на этот ответ.

Другие вопросы по тегам