1

我正在尝试将共享加载项的功能和相应的功能区(通过功能区设计器或 VS10 中的 XML 集成)的功能分开。解决方案上下文是使用多个项目构建的,其中外接程序本身代表一个主机,该主机具有到在运行时加载的另一个程序集的接口。在这个程序集中,我想访问在共享加载项 (connect.cs) 中实现的功能区的回调方法。我尝试注入功能区的 MSProject2010 应用程序被包装在该程序集中,以授予对 Project 实例的访问权限。

主机中有一个 Startup() 函数,它扫描特定目录中的所有程序集并将其与正确的接口集成。因此,位于程序集中的 AddIn_Startup(Params)-Function 是通过接口调用的,这里是上下文,我想在其中访问我的功能区回调。

现在,如何通过共享插件将回调从 MSProject 应用程序路由到程序集中?

另一个问题:如何通过外部程序集访问自定义功能区?(相同的环境)

最好的祝福

4

1 回答 1

2

我自己找到了解决方案。

问题是共享插件的上下文。与通过 VSTO 实现的方式相比,操作 Ribbon 环境很复杂。我将 shared-addin 变成了 MSProject2010-Addin,然后将 Ribbon 本身作为传递到界面中。这可以通过使用功能区设计器制作功能区来实现,该功能区在全局类中注册功能区,由插件提供。(Globals.Ribbons.RibbonName.Ribbon)。另一方面,我将此对象转换为 OfficeRibbon 并将其分配给空的 OfficeRibbon。在这里,我可以操作和更改功能区的属性并创建 EventHandler。在运行时无法将选项卡、按钮或其他控件添加到功能区!至少我找不到办法做到这一点。

于 2010-11-24T08:06:31.193 回答