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

发布于 2024-11-06 05:05:10 字数 151 浏览 2 评论 0原文

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

I am currently diving into VSTO add-in development and ribbon customization for Word 2010. This works fine, but has a drawback: The ribbon customization should take place for only certain documents, but the IRibbonExtensibility.GetCustomUI() method is obviously called on application startup before any document is loaded. How can I accomplish this requirement?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

始终不够爱げ你 2024-11-13 05:05:10

你是对的,它只被调用一次。关于您唯一的选择(以及对我来说相当有效的选择),是预先定义功能区中的所有内容,然后根据加载的文档或加载项中发生的其他情况将 VISIBLE 属性设置为 false 或 true 。

You're right that it's only called once. About your only choice (and what's worked for me reasonably well), is to define EVERYTHING in your ribbon up front, then set the VISIBLE property to false or true as applicable depending on what doc is loaded, or whatever else is happening in your addin.

意中人 2024-11-13 05:05:10

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

不过,可能对您有帮助的是我一直在开发的项目 VSTO Contrib 中的一些功能,它允许您创建一个 ViewModel,该 ViewModel 将为每个打开的文档创建,并且它将通过以下方式发现并连接功能区 xml:习俗。

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

@drventure is right, you have to define your ribbon up front, then show/hide different buttons on the ribbon.

What might help you though is some of the features in a project I have been working on, VSTO Contrib, it allows you to create a ViewModel, which will be created for each open document, and it will discover and wire up the ribbon xml by convention.

In your case this would mean you can bind the ribbon buttons visibility to a property on the viewmodel, and you don't have to worry about keeping the window/documents syncronised. Have a read of http://jake.ginnivan.net/vsto-contrib/ribbon-factory and see if it will help you solve your problem with a heap less code =)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文