繁体   English   中英

触发对IRibbonExtensibility.GetCustomUI()的调用以强制功能区UI刷新

[英]Trigger a call to IRibbonExtensibility.GetCustomUI() to force a ribbon UI refresh

我正在开发Office加载项。 由于功能区控件的某些限制(例如, menuSeparator没有可见性控件,或者splitButton不能仅dynamicMenu menudynamicMenu ),我需要能够通过重复调用加载项的IRibbonExtensibility.GetCustomUI来使Office应用程序重新加载功能区IRibbonExtensibility.GetCustomUI

这可能吗?

据我所知,Ribbon加载项需要先停止然后重新启动加载项。 鉴于可以访问Outlook中的加载项列表,因此必须有一种方法。 您可以运行外接程序的另一个实例,该实例将首先关闭上一个实例,然后返回更新的功能区XML。 但是,这意味着它在用户单击功能区的组件时不适用,并且您必须将所有数据保存在某个位置,然后读取它以恢复加载项状态。 另外,用户可能会看到色带消失并再次出现,这可能是无法理解的。

Ribbon.Invalidate()方法适合您的用例吗? 动态添加/删除项目后,我经常使用它来刷新功能区。

例如,在功能区c#文件中(默认情况下为Ribbon1.cs):

this.ribbon.Invalidate();

功能区需要刷新时。 假设您已经在Ribbon_Load方法中设置了this.ribbon。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM