2010-05-23 244 views
4

您好我一直在修补这两种技术来修改带有MS Word插件(Visual Studio 2010,.NET 3.5),Microsoft.Office.Tools.Ribbon.OfficeRibbon和Microsoft.Office.Core.IRibbonExtensibility 。我希望在插件的CreateRibbonExtensibilityObject中切换两者,但由于某种原因,现在不调用它。该文档说,如果一个插件实现了CreateRibbonExtensibilityObject,它将被调用。当我创建一个新项目来测试这个事情时,它就可以工作。我不想现在放弃我的项目。有任何想法吗?谢谢。为什么我的CreateRibbonExtensibilityObject方法不被调用?

回答

1

他们不是真的可以互换。问题是,如果你使用OfficeRibbon对象(这真的很不错,它有一个漂亮的设计师等),那么IT实现createribbonextensibility的东西,你没有机会截取它。

我在去年发表了一篇博客文章,讨论了从VSTO 3插件添加对新的Office 2010“Backstage视图”的支持问题(VSTO 3不支持Backstage,但它仍然可行,而且您还可以'd基本上使用相同的技术来替换功能区支持的实现)。

真正的问题是,为什么要麻烦?如果你已经完成了支持IExtensibility2的工作(然后有能力用XML完全定义你的功能区对象),那么OfficeRibbon就不需要太多了。如果你使用的是官僚控制,它可以做任何你可以直接指定xml的东西,所以为什么要忍受痛苦呢?

博客在这里发表 http://www.vbfengshui.com/integrating-with-the-new-office-backstage-from-a-vsto-3-addin/

+1

另外,去IExtensibility2使得它让你的插件可以针对任何Office应用程序,而不仅仅是文字或Excel。我编写了一个Office元数据清理工具,它支持从2000到2010年的所有Office版本,以及所有主要办公应用程序,包括Word,Excel,PPT和Outlook。只有1个DLL来处理分发和调试是非常好的。 – DarinH 2011-03-22 16:30:58

相关问题