添加工具栏
本演练演示如何向 Visual Studio IDE 添加工具栏。
工具栏是包含绑定到命令的按钮的水平或垂直条带。 根据它的实现,IDE 中的工具栏可以重新定位、停靠在主 IDE 窗口的任意一侧,或使其停留在其他窗口前面。
此外,用户可以使用“ 自定义 ”对话框将命令添加到工具栏或将其从工具栏中删除。 通常,VSPackage 中的工具栏是用户可自定义的。 IDE 处理所有自定义项,VSPackage 响应命令。 VSPackage 不必知道命令的物理位置。
有关菜单的详细信息,请参阅 命令、菜单和工具栏。
使用工具栏创建扩展
创建名为 IDEToolbar
. 的 VSIX 项目。 添加名为 ToolbarTestCommand 的菜单命令项模板。 有关如何执行此操作的信息,请参阅 使用菜单命令创建扩展。
为 IDE 创建工具栏
在 ToolbarTestCommandPackage.vsct 中,查找“符号”部分。 在名为 guidToolbarTestCommandPackageCmdSet 的 GuidSymbol 元素中,添加工具栏和工具栏组的声明,如下所示。
<IDSymbol name="Toolbar" value="0x1000" /> <IDSymbol name="ToolbarGroup" value="0x1050" />
在“命令”部分顶部,创建“菜单”部分。 将 Menu 元素添加到“菜单”部分以定义工具栏。
<Menus> <Menu guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" type="Toolbar"> <CommandFlag>DefaultDocked</CommandFlag> <Strings> <ButtonText>Test Toolbar</ButtonText> <CommandName>Test Toolbar</CommandName> </Strings> </Menu> </Menus>
工具栏不能像子菜单一样嵌套。 因此,无需分配父组。 此外,无需设置优先级,因为用户可以移动工具栏。 通常,工具栏的初始放置以编程方式定义,但用户的后续更改将保留。
在 “组” 部分中,在现有组项之后,定义一个 Group 元素以包含工具栏的命令。
<Group guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" priority="0x0000"> <Parent guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" /> </Group>
使按钮显示在工具栏上。 在“按钮”部分中,将按钮中的父块替换为工具栏。 生成的 Button 块应如下所示:
<Button guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarTestCommandId" priority="0x0100" type="Button"> <Parent guid= "guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" /> <Icon guid="guidImages" id="bmpPic1" /> <Strings> <ButtonText>Invoke ToolbarTestCommand</ButtonText> </Strings> </Button>
默认情况下,如果工具栏没有命令,则不会显示。
生成项目并启动调试。 应显示实验实例。
右键单击 Visual Studio 菜单栏以获取工具栏列表。 选择 “测试工具栏”。
现在,应将工具栏视为“在文件中查找”图标右侧的图标。 单击图标时,应会看到一个显示 ToolbarTestCommandPackage 的消息框。在 IDEToolbar.ToolbarTestCommand.MenuItemCallback()内。