从 C# 代码更改 VSX 工具栏上按钮的图标
Change icon for button on VSX Toolbar from C# code
我们以前有一个插件,但现在我们有一个 Visual Studio 扩展。
当用户单击工具栏上的按钮时,将与数据库建立连接。在插件中,按钮上的图标随后更改为显示已建立连接。
tsbMainConnect.Image = Properties.Resources.connected;
当用户再次点击同一个按钮时,用户可以断开连接并且按钮的图标变回原来的图标:
tsbMainConnect.Image = Properties.Resources.disconnected;
那么如何在扩展程序中执行此操作?也就是说,如何在 C# 中而不是在 vsct 文件中更改按钮应引用的图标?
<Button guid="guidConnectCommandPackageCmdSet" id="ConnectCommandId" priority="0x0100" type="Button">
<Parent guid="guidConnectCommandPackageCmdSet" id="SymToolbarGroup" />
<Icon guid="ConnectImage" id="bmpConnect1" />
<Strings>
<ButtonText>Invoke Connect Command</ButtonText>
</Strings>
</Button>
根据我的经验和参考this document,您可以更改命令已启用或命令的可见性,但似乎无法更改图标图像。
解决方法是创建两个菜单按钮,并在需要时隐藏其中一个。按照文档中的步骤更改命令的可见性。
我们以前有一个插件,但现在我们有一个 Visual Studio 扩展。
当用户单击工具栏上的按钮时,将与数据库建立连接。在插件中,按钮上的图标随后更改为显示已建立连接。
tsbMainConnect.Image = Properties.Resources.connected;
当用户再次点击同一个按钮时,用户可以断开连接并且按钮的图标变回原来的图标:
tsbMainConnect.Image = Properties.Resources.disconnected;
那么如何在扩展程序中执行此操作?也就是说,如何在 C# 中而不是在 vsct 文件中更改按钮应引用的图标?
<Button guid="guidConnectCommandPackageCmdSet" id="ConnectCommandId" priority="0x0100" type="Button">
<Parent guid="guidConnectCommandPackageCmdSet" id="SymToolbarGroup" />
<Icon guid="ConnectImage" id="bmpConnect1" />
<Strings>
<ButtonText>Invoke Connect Command</ButtonText>
</Strings>
</Button>
根据我的经验和参考this document,您可以更改命令已启用或命令的可见性,但似乎无法更改图标图像。
解决方法是创建两个菜单按钮,并在需要时隐藏其中一个。按照文档中的步骤更改命令的可见性。