添加工具栏

本演练演示如何向 Visual Studio IDE 添加工具栏。

工具栏是包含绑定到命令的按钮的水平或垂直条带。 根据它的实现,IDE 中的工具栏可以重新定位、停靠在主 IDE 窗口的任意一侧,或使其停留在其他窗口前面。

此外,用户可以使用“ 自定义 ”对话框将命令添加到工具栏或将其从工具栏中删除。 通常,VSPackage 中的工具栏是用户可自定义的。 IDE 处理所有自定义项,VSPackage 响应命令。 VSPackage 不必知道命令的物理位置。

有关菜单的详细信息,请参阅 命令、菜单和工具栏

使用工具栏创建扩展

创建名为 IDEToolbar. 的 VSIX 项目。 添加名为 ToolbarTestCommand菜单命令项模板。 有关如何执行此操作的信息,请参阅 使用菜单命令创建扩展。

为 IDE 创建工具栏

  1. ToolbarTestCommandPackage.vsct 中,查找“符号”部分。 在名为 guidToolbarTestCommandPackageCmdSet 的 GuidSymbol 元素中,添加工具栏和工具栏组的声明,如下所示。

    <IDSymbol name="Toolbar" value="0x1000" />
    <IDSymbol name="ToolbarGroup" value="0x1050" />
    
  2. 在“命令”部分顶部,创建“菜单”部分。 将 Menu 元素添加到“菜单”部分以定义工具栏。

    <Menus>
        <Menu guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" type="Toolbar">
            <CommandFlag>DefaultDocked</CommandFlag>
            <Strings>
                <ButtonText>Test Toolbar</ButtonText>
                <CommandName>Test Toolbar</CommandName>
            </Strings>
        </Menu>
    </Menus>
    

    工具栏不能像子菜单一样嵌套。 因此,无需分配父组。 此外,无需设置优先级,因为用户可以移动工具栏。 通常,工具栏的初始放置以编程方式定义,但用户的后续更改将保留。

  3. “组” 部分中,在现有组项之后,定义一个 Group 元素以包含工具栏的命令。

    <Group guid="guidToolbarTestCommandPackageCmdSet" id="ToolbarGroup" priority="0x0000">
        <Parent guid="guidToolbarTestCommandPackageCmdSet" id="Toolbar" />
    </Group>
    
  4. 使按钮显示在工具栏上。 在“按钮”部分中,将按钮中的父块替换为工具栏。 生成的 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>
    

    默认情况下,如果工具栏没有命令,则不会显示。

  5. 生成项目并启动调试。 应显示实验实例。

  6. 右键单击 Visual Studio 菜单栏以获取工具栏列表。 选择 “测试工具栏”。

  7. 现在,应将工具栏视为“在文件中查找”图标右侧的图标。 单击图标时,应会看到一个显示 ToolbarTestCommandPackage 的消息框。在 IDEToolbar.ToolbarTestCommand.MenuItemCallback()内。