簡體   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