8

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

在 XML 功能区中以编程方式访问功能区控件

Office 功能区:使用 XML 创建功能区时如何访问控件

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

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

4

1 回答 1

8

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

请参阅有关更新功能区 UI 控件状态的相关 SO 帖子。

如果您想以编程方式访问功能区元素,您应该使用功能区设计器。但是,如MSDN所述,设计器并不支持所有自定义。有人推测,设计者只是在幕后为您包装了 Ribbon XML。

您只需学习Ribbon XML 使用的回调机制- 没有可供您访问的控制树。

于 2012-02-21T15:00:09.957 回答