【问题标题】:Access Ribbon Elements Programmatically in XML Ribbon在 XML 功能区中以编程方式访问功能区元素
【发布时间】:2012-02-19 20:56:48
【问题描述】:

这似乎已经在这里被问过好几次了,但没有真正的答案:

Accessing Ribbon Controls Programatically in an XML Ribbon

Office Ribbon: How to access a control when the ribbon was created using XML

如果使用功能区 xml 创建功能区,据我所知,该 xml 中定义的组件不会以编程方式公开。更改这些组件状态的唯一明显有限的方法是使用诸如 onAction、getContent、getImage 事件之类的东西,而 IRibbonControl 元素几乎不能用于操作相关元素(更不用说,这些函数中的大多数只运行一次) ,首次渲染时)。

所以我试图找到一种以编程方式访问这些 xml 功能区元素的方法。

【问题讨论】:

    标签: c# outlook ms-office office-addins


    【解决方案1】:

    使用 Ribbon XML 时,无法以编程方式访问 Ribbon 元素。如果您想更改功能区控件的状态 - 您需要使用 IRibbonUI.Invalidate() 强制重新渲染布局(可能使用通过回调在渲染时触发不同行为的属性)。这可能是一件好事,因为如果您要更改多个项目的状态,您可以更好地控制何时进行绘制。

    请参阅related SO post 更新功能区 UI 控件状态。

    如果您希望以编程方式访问功能区元素,您应该使用Ribbon Designer。但是,作为stated on MSDN,设计器并不支持所有自定义。一些speculate that the designer just wraps the Ribbon XML 在幕后为你准备。

    您只需学习callback mechanism utilized by the Ribbon XML - 没有可供您访问的控制树。

    【讨论】:

      猜你喜欢
      • 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
      相关资源
      最近更新 更多