【问题标题】:How do I customize Word 2010 ribbon only on demand in a VSTO4 add-in?如何在 VSTO4 加载项中仅按需自定义 Word 2010 功能区?
【发布时间】:2015-02-26 04:25:27
【问题描述】:

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

【问题讨论】:

    标签: c# ms-word vsto


    【解决方案1】:

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

    【讨论】:

    • 听起来很有希望。这是否也适用于禁用(不隐藏)内部命令或使用 startFromScratch 时?
    • 从 msdn 页面,我认为这不适用于 StartFromScratch(参见“备注”部分):msdn.microsoft.com/en-us/library/…
    • 完全有可能。我还不需要使用从头开始。这基本上会关闭所有内部定义的功能区,不是吗?如果是这样,这意味着要“重新定义”所有已经由 Word 定义的元素需要做更多的工作(更不用说让 Word 看起来与库存非常不同,我不确定这通常是一件好事,虽然我想在非常有限的情况下,你可能想要这样做。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多