我正在使用Outlook加载项,该扩展程序扩展了电子邮件撰写检查器和Backstage的功能区。这个问题解释得非常快。 对于所有检查员来说,似乎只有一个色带实例。
当第一个检查器窗口打开时,OnLoad中定义的回调将触发。 对于以下所有检查员而言,它并非如此。 由于这个事实,我不能有一个功能区的实例"代码背后"每个检查员的班级和所有检查员共享相同的属性,如可见性,启用/禁用等按钮。
如何为每个检查员窗口设置一个Ribbon的独立对象?
这是我的Ribbon XML:
<customUI onLoad="Ribbon_Load" xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab idMso="TabNewMailMessage">
<group id="groupSpatium">
<toggleButton id="toggleShare" imageMso="FilePublishAsWebPage" onAction="ToggleShare_Click" description="Click to share files" label="Send" size="large" getEnabled="IsShareEnabled" getPressed="IsShareChecked" />
<toggleButton id="toggleReceive" imageMso="EmailFormCollectionFolder" onAction="ToggleReceive_Click" description="Click to receive files" label="Receive" size="large" getEnabled="IsReceiveEnabled" getPressed="IsReceiveChecked" />
</group>
</tab>
</tabs>
</ribbon>
<backstage>
<tab id="ShareBackstage" label="Noerr Share">
<firstColumn>
<group id="AlwaysPasswordProtectGroup" label="Password protection and access control" helperText ="Set options for password protection of and access to uploaded files.">
<bottomItems>
<checkBox id="AlwaysPasswordProtect" label="Password protect all uploads" getPressed="IsAlwaysPasswordprotectChecked" onAction="AlwaysPasswordprotect_Click"/>
<checkBox id="AlwaysRequireRegistration" label="Require registration for all password protected uploads" getPressed="IsAlwaysRequireRegistrationChecked" onAction="AlwaysRequireRegistration_Click" getEnabled="IsAlwaysPasswordprotectChecked"/>
</bottomItems>
</group>
</firstColumn>
</tab>
</backstage>
</customUI>
感谢您的帮助
答案 0 :(得分:0)
当OnLoad
触发时,它会为您提供RibbonUI
个对象。如果要显示/隐藏/启用/禁用控件,请使用它来调用RibbonUI.Invalidate
。
所有回调都会通过将IRibbonControl
接口作为参数传递给您上下文。读取IRibbonControl.Context
属性 - 它将是托管控件的Explorer或Inspector对象。