繁体   English   中英

加载特定文档后,如何禁用Word的内置功能区选项卡?

[英]How can I disable Word's built-in Ribbon Tabs when a specific document is loaded?

我现在正在使用以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<commands>
<command idMso="Font" enabled="false"/>
<command idMso="AlignLeft" enabled="false"/>
<command idMso="AlignCenter" enabled="false"/>
<command idMso="AlignRight" enabled="false"/>
</commands>

等等,但这显然完全禁用了按钮。 我现在想限制我的用户在加载特定文档时不能使用某些内置的Word控件,并让他们可以在其余时间自由进行操作。 我尝试使用:

<command idMso="FontSize" getEnabled="checkDisable"/>

其中checkDisable检查打开了哪些文档。 然后在该文档中搜索一个字符串(这就是我想禁用按钮的方式),但是在实际加载该文档之前会触发checkDisable回调。 我能以某种方式直接禁用代码背后的特定按钮,而不仅仅是通过XML吗? 如果可以这样做,则可以禁用DocumentLoaded事件上的按钮。

任何建议都值得赞赏,我一直在脑海中摸索着这个头几个小时。

您在正确的道路上。 您需要使用回调而不是属性。 但是Office会缓存这些值,并且不会在每次需要时都调用回调。 相反,要刷新UI(强制Office应用程序调用回调),您需要使用IRibbonUI界面的InvalidateInvalidateControl方法。 有关更多信息,请参见IRibbonUI对象概述

例如,当您在宿主应用程序中打开新文档时,将触发Open事件。 您可以检出Document并调用Invalidate方法(如果需要)以强制主机应用程序调用您的回调,从而刷新UI。

暂无
暂无

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

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