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
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. Pourquoi ma méthode C# n'est pas appelée?
- 2. Pourquoi ma méthode de désinstallation n'est-elle pas appelée?
- 3. Pourquoi ma fonction n'est pas appelée cliquer?
- 4. Pourquoi la méthode drawRect n'est pas appelée?
- 5. Pourquoi ma méthode webservice serait-elle appelée via GET?
- 6. Pourquoi ma fonction JavaScript n'est-elle pas appelée?
- 7. Pourquoi ma fonction est appelée deux fois?
- 8. Pourquoi la méthode doPost de ma servlet de chat n'est-elle pas appelée?
- 9. Pourquoi ma méthode de désinstallation n'est-elle pas appelée depuis le msi?
- 10. Pourquoi la méthode DrawItem de ma liste de propriétés owner draw ne peut pas être appelée
- 11. Pourquoi ma méthode virtuelle n'est pas surchargée?
- 12. Pourquoi ma méthode equals ne fonctionne pas?
- 13. Pourquoi la méthode handle_read n'est-elle pas appelée avec asyncore?
- 14. La méthode de peinture JPanel n'est pas appelée, pourquoi?
- 15. Pourquoi la méthode est pas appelée - JRuby Rails3
- 16. Pourquoi la méthode didUpdateToLocation n'est-elle pas appelée sur ios4?
- 17. Pourquoi ma méthode jquery change() n'est pas exécutée dans jira?
- 18. Pourquoi ma méthode @BeforeClass n'est-elle pas en cours d'exécution?
- 19. Pourquoi ma méthode dans application_controller n'est-elle pas visible?
- 20. Pourquoi ma méthode d'extension n'apparaît-elle pas dans ma classe de test?
- 21. La méthode Objective-C n'est pas appelée
- 22. méthode invoquée ou méthode appelée?
- 23. Pourquoi ma méthode enum.Parse échoue-t-elle?
- 24. méthode est appelée
- 25. Pourquoi ma fonction formatResult personnalisée n'est-elle pas appelée à l'aide du plugin jQuery autoComplete?
- 26. Dans JSF, la méthode "saveState()" est appelée deux fois. Pourquoi?
- 27. La méthode to_json personnalisée n'est pas appelée dans l'application Rails
- 28. La méthode de délégué CALayer drawLayer n'est pas appelée
- 29. Ruby: quelle méthode est appelée?
- 30. Méthode WCF appelée deux fois
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