2010-05-23 3 views
4

Привет, я мастерил два метода, чтобы изменить ленту с помощью добавления MS Word (Visual Studio 2010, .NET 3.5), Microsoft.Office.Tools.Ribbon.OfficeRibbon и Microsoft.Office.Core.IRibbonExtensibility , Я надеялся переключиться между ними в моем приложении CreateRibbonExtensibilityObject, но по какой-то причине он теперь не вызывается. В документации говорится, что если addin реализует CreateRibbonExtensibilityObject, он будет вызван. Когда я создаю новый проект, чтобы проверить это, это работает. Я бы предпочел отказаться от моего проекта как есть. Есть идеи? Спасибо.Почему мой метод CreateRibbonExtensibilityObject не вызван?

ответ

1

Они не являются взаимозаменяемыми. Проблема в том, что если вы используете объект OfficeRibbon (который действительно хорош, у него хороший дизайнер и т. Д.), Тогда ИТ реализует материал createribboneextensibility, и у вас нет возможности его перехватить.

В прошлом году я опубликовал сообщение в блоге, в котором обсуждалась проблема добавления поддержки нового Office 2010 «Задний вид» из дополнения VSTO 3 (VSTO 3 не поддерживает Backstage, но он по-прежнему выполним, и вы 'd в основном используют ту же технику для замены реализаций поддержки ленты).

Настоящий вопрос: зачем беспокоиться? Если вы выполнили работу по поддержке IExtensibility2 (а затем имеете возможность полностью определить ваш ленточный объект в XML), в OfficeRibbon не так уж много необходимости. и если вы используете контрольный элемент Officibbon, он может сделать jsut обо всем, что вы могли бы прямо указать xml, так зачем страдать от боли?

Блог пост здесь http://www.vbfengshui.com/integrating-with-the-new-office-backstage-from-a-vsto-3-addin/

+1

Plus, идя IExtensibility2 делает это так ваша надстройка может предназначаться любого офисного приложения, а не просто слово, или преуспеть. Я написал обработчик метаданных Office, который работал именно так, Single DLL, поддерживал все версии Office с 2000 до 2010 года и все основные офисные приложения, включая Word, Excel, PPT и Outlook. было приятно иметь всего 1 dll для решения вопросов для распространения и отладки. – DarinH