我正在使用VSTO 3.0,功能区设计师为我提供了一个显然在文档中共享的功能区。
因此,如果我需要在功能区(或切换按钮)中显示特定于文档的状态(标记为XML标记的标记数),则所有文档似乎共享功能区实例
我该如何解决这个问题 TIA
答案 0 :(得分:4)
您可以使用Application.DocumentChange事件或Application.WindowActivate事件。
第一个被解雇然后你改变了当前的活动文档,但是在参数中没有关于该文档的信息,因此很难处理,因为你必须弄明白。
后者类似,每次更改窗口时都会触发,但在这种情况下,它会将当前活动文档作为参数传递,因此如果需要检查任何文档属性的值,则更容易更改功能区。这对我有用。
答案 1 :(得分:3)
在文档模型中挂钩到适当的事件(例如当活动文档被更改时),并且在那种情况下使相应的功能区按钮无效(您需要加载的原始Ribbon xml中的元素的id)
然后,当发生该按钮的刷新状态回调时,您可以根据需要更新标题/图像/启用。