UI 功能区:如何取消按下切换按钮?

UI Ribbon: How to unpress a toggle button?

有4个切换按钮,当我点击一个时,其他3个没有被点击 例如,当我单击 public 时,Confidential 的单击将被删除。只能选择1个。

 <toggleButton id="textButtonpublic" getLabel="getpublic" getImage="getcolor" onAction="PublicAction" getVisible="getvisiblepublic"  getPressed="GetPressedPublic"   />

public void PublicAction(IRibbonControl control, bool pressed){
GetPressedConfidential();}


 public bool GetPressedConfidential(IRibbonControl control)
    {
        return false;
    }

调用 GetPressedConfidential 方法时无效。

如果功能区按钮来自您的加载项,您需要使用 IRibbonUI 界面的 Invalidate or InvalidateControl 方法,该方法允许使功能区上单个控件或所有控件的缓存值无效用户界面。

例如,如果插件编写器为按钮实现了 getImage 回调过程,则调用该函数一次,加载图像,然后如果需要更新图像,则使用缓存的图像而不是回顾程序。此过程对控件保持不变,直到加载项使用 InvalidateControl 方法发出缓存值无效的信号,此时再次调用回调过程并缓存 return 响应。

getPressed 回调对 toggelButton 控件具有以下签名:

C#: bool GetPressed(IRibbonControl control)

VBA: Sub GetPressed(control As IRibbonControl, ByRef returnValue)

C++: HRESULT GetPressed([in] IRibbonControl *pControl, [out, retval] VARIANT_BOOL *pvarfPressed)

Visual Basic: Function GetPressed(control As IRibbonControl) As Boolean

Fluent UI(又名 Ribbon UI)在以下文章中有深入描述: