Hello,
I am developing a VSX package( this is VSCT in C# 4 and VS2010). I wants to add a button and change the button icon dynamically. I would like to know is there any way that I can change the icon of button dynamically?
Details:
1) First, I add a button in VSCT:
...
<Button guid="cmdSet" id="cmdID" priority="0x0101" type="Button"><Parent guid="cmdSet" id="commGroup"/><Icon guid="guidImages" id="cmdIcon" /><CommandFlag>DynamicVisibility</CommandFlag><CommandFlag>DefaultDisabled</CommandFlag><Strings><CommandName>My Button</CommandName><ButtonText>My Button</ButtonText><ToolTipText>My Button</ToolTipText></Strings></Button>
...
2) I add this button in .cs code
private initial()
{
...
var cmdid = new CommandID(guid, cmdIDInt);
var cmd = new OleMenuCommand(DoNothingMenuInvoke, cmdid);
cmd.BeforeQueryStatus += new QueryButtonStatus;
menuservice.AddCommand(cmd);
...
}3. In QueryButtonStatus, I only can change the enable, checked, visible, property. I can find a way to change icon!
private void QueryButtonStatus(object sender, EventArgs e)
{
OleMenuCommand menuCommand = sender as OleMenuCommand;
menuCommand.Checked = true;
menuCommand.Enabled = true;
menuCommand.Visible = true;
}4. BTW, as I know, there is a way to change the icon of button in VS toolbar. But this button is not in tool bar. Therefore, currently I have no idea and comes here for help.
Thank you all.