2010-05-23 3 views
4

Salut, j'ai bricolé avec les deux techniques pour modifier le ruban avec un ajout MS Word (Visual Studio 2010, .NET 3.5), un Microsoft.Office.Tools.Ribbon.OfficeRibbon et Microsoft.Office.Core.IRibbonExtensibility . J'espérais basculer entre les deux dans CreateRibbonExtensibilityObject de mon addin, mais pour une raison quelconque, il n'est pas appelé maintenant. La documentation dit que si un addin implémente CreateRibbonExtensibilityObject qu'il sera appelé. Quand je crée un nouveau projet pour tester cela, ça fonctionne. Je préférerais ne pas abandonner mon projet tel quel. Des idées? Je vous remercie.Pourquoi ma méthode CreateRibbonExtensibilityObject n'est-elle pas appelée?

Répondre

1

Ils ne sont pas vraiment interchangeables. Le problème est que si vous utilisez l'objet OfficeRibbon (ce qui est vraiment sympa, il a un bon designer, etc), alors IT implémente le truc de createribbonextensibility et vous n'avez aucune chance de l'intercepter. J'ai fait un blog l'année dernière qui parlait du problème de l'ajout du support pour la nouvelle "Backstage view" d'Office 2010 à partir d'un add-in VSTO 3 (VSTO 3 ne supporte pas Backstage, mais c'est encore faisable, et vous utiliserait essentiellement la même technique pour échanger les implémentations du support de ruban). La vraie question est: pourquoi s'embêter? Si vous avez fait le travail pour supporter IExtensibility2 (et ensuite avoir la possibilité de définir complètement votre objet ruban en XML), il n'y a pas grand besoin d'OfficeRibbon. et si vous utilisez le contrôle officeribbon, il peut faire tout ce que vous pourriez faire en spécifiant le xml directement, alors pourquoi souffrir de la douleur?

Blog post ici http://www.vbfengshui.com/integrating-with-the-new-office-backstage-from-a-vsto-3-addin/

+1

Plus, va IExtensibility2 le rend si votre Addin peut cibler toute application de bureau, pas seulement un mot ou Excel. J'ai écrit un scrubber Office Metadata qui fonctionnait de cette façon, Single DLL, supporté toutes les versions d'Office de 2000 à 2010, et toutes les applications du bureau principal, y compris Word, Excel, PPT et Outlook. Il était terriblement agréable d'avoir seulement 1 dll à traiter pour la distribution et le débogage. – DarinH

Questions connexes