如何在 VSTO4 加载项中仅按需自定义 Word 2010 功能区

本文关键字:自定义 Word 2010 功能区 VSTO4 加载项 | 更新日期: 2023-09-27 17:56:04

我目前正在深入研究 Word 2010 的 VSTO 加载项开发和功能区自定义。这工作正常,但有一个缺点:功能区自定义应仅针对某些文档进行,但 IRibbonExtensibility.GetCustomUI() 方法显然是在加载任何文档之前在应用程序启动时调用的。如何满足此要求?

如何在 VSTO4 加载项中仅按需自定义 Word 2010 功能区

你是对的,它只被调用一次。关于您唯一的选择(以及对我相当有效的选择)是预先定义功能区中的所有内容,然后将 VISIBLE 属性设置为 false 或 true 视情况而定,具体取决于加载的文档或您的插件中发生的任何其他事情。

@drventure是正确的,您必须预先定义功能区,然后在功能区上显示/隐藏不同的按钮。

不过,我正在处理的一个项目中的一些功能可能会对您有所帮助,VSTO Contrib,它允许您创建一个ViewModel,该模型将为每个打开的文档创建,并且它将按照惯例发现并连接功能区xml。

在您的情况下,这意味着您可以将功能区按钮可见性绑定到视图模型上的属性,并且您不必担心保持窗口/文档同步。阅读 http://jake.ginnivan.net/vsto-contrib/ribbon-factory,看看它是否可以帮助您使用堆更少的代码解决问题=)