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)在以下文章中有深入描述:
有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)在以下文章中有深入描述: