Outlook 2013加载项:使用c在单击按钮时更改功能区按钮图像#
我已经使用c#为Outlook 2013创建了功能区按钮 我还为丝带设置了图像 现在单击功能区按钮,我想更改功能区图像Outlook 2013加载项:使用c在单击按钮时更改功能区按钮图像#,outlook,outlook-addin,outlook-2013,Outlook,Outlook Addin,Outlook 2013,我已经使用c#为Outlook 2013创建了功能区按钮 我还为丝带设置了图像 现在单击功能区按钮,我想更改功能区图像 使用c#可以实现这一点吗?不确定您希望它如何工作,但这可以实现 bool callback {get;set} public Bitmap GetImage(IRibbonControl control) { switch (control.Id) { case "FooButtonId":
使用c#可以实现这一点吗?不确定您希望它如何工作,但这可以实现
bool callback {get;set}
public Bitmap GetImage(IRibbonControl control)
{
switch (control.Id)
{
case "FooButtonId":
{
if(callback== true){
callback = false;
return new Bitmap(Properties.Resources.someimage1);
}else
callback =true;
return new Bitmap(Properties.Resources.someimage2);
}
}
}
}
这个问题是3Yo,但它帮助我更进一步,我想与你们分享。 首先,我在VB.net中完成了这项工作,因此我的代码将在VB.net中完成。有一些在线工具可以将代码转换成C#。 其次,我使用了一个切换按钮,而不是一个简单的按钮。 第三,为了保存切换按钮的状态,我使用了
OnOff
作为项目设置
步骤1:Ribbon.xml文件,用于在功能区上放置切换按钮的代码。
假设您已经在文件中设置了选项卡
和组
标记
<toggleButton id="onoffTBTN" label="ON/OFF" showImage="true" onAction="OnOffToggle" getImage="OnOffImage"/>
步骤3:Ribbon.vb文件,读取OnOff
设置并相应更改图像。请记住,图像必须已添加到项目资源中,才能在My.resources.*
中使用它们。我使用了支持透明像素的png文件。此函数在两种情况下调用,第一种情况是Outlook启动,第二种情况是按下切换按钮,特别是使用命令myRibbon.InvalidateControl(“onoffTBTN”)
唯一奇怪的行为是OnOff
设置被设置为TRUE时。将显示正确的图像,但切换按钮看起来未按下。必须单击两次才能将OnOff
设置设置为False
Public Sub OnOffToggle(ByVal control As Office.IRibbonControl, ByVal pressed As Boolean)
My.Settings.OnOff = pressed
My.Settings.Save()
myRibbon.InvalidateControl("onoffTBTN")
End Sub
Public Function OnOffImage(ByVal control As Office.IRibbonControl) As Drawing.Bitmap
Dim onoff As Boolean = My.Settings.OnOff
Select Case control.Id
Case "onoffTBTN"
If onoff = True Then
Return New Drawing.Bitmap(My.Resources._on)
Else
Return New Drawing.Bitmap(My.Resources.off)
End If
End Select
End Function