如何:创建工具窗口的工具栏

可以将工具栏添加到工具窗口通过定义类型 ToolWindowToolbar 菜单在 VSPackage .vsct 文件,然后编程包显示它。

在工具窗口的工具栏与工具栏泛型集成开发环境 (ide) 在以下 (IDE)方面有所不同:

  • IDE 工具栏可以通过定义类型 Toolbar 菜单创建在 .vsct 文件。 在目标工具窗口必须以编程方式创建工具窗口工具栏。

  • 使用 自定义 对话框,用户可以配置 IDE 工具栏。 不能按照这种方式配置工具窗口工具栏。

创建工具窗口工具栏

工具窗口工具栏先定义为 .vsct 文件的 Menu 元素

以下过程假定,您有工具窗口。 .vsct 文件中定义的一个 VSPackage 项目。 如果在包向导创建 VSPackage,在中,选择 工具窗口 添加 .vsct 文件来打包项目和定义工具窗口。

创建工具窗口工具栏

  1. 在编辑器中打开 .vsct 文件。

  2. 查找由 Symbols 元素窗体的一部分。

  3. 查找包含菜单、组和命令的 GuidSymbol 元素 。 默认情况下,名为 GUIDProjectNameCmdSet

  4. 如下面的示例所示,这些工具栏的 IDSymbol 元素 和一个组的能存放命令,。

    <IDSymbol name="TWToolbar" value="0x1000" />
    <IDSymbol name="TWToolbarGroup" value="0x1050" />
    

    GuidSymbolIDSymbol 元素的 name 属性在所定义的工具栏、命令或组中提供 GUID: 委托该工具栏、命令或组的 ID 匹配。 GUID 表示为 VSPackage 定义设置的命令。 多个命令在包设置中定义。 GUID: 用于标识每个项目必须是唯一的 ID 匹配。

  5. 使用 Menus 元素,以上由 Groups 元素窗体的部分中,创建一个节。

  6. 定义工具栏为 Menus 部分的 Menu 元素 ,如下所示:

    1. 设置 guid 和 id 属性设置为 GUID: 新工具栏的 ID。

    2. 设置 type 属性设置为 ToolWindowToolbar。

    3. Menu 元素,请使用 Strings 元素 创建包含 ButtonText 元素CommandName 元素的一部分。 ,当出现在 IDE 中, ButtonText 组件用于设置工具栏的名称。 CommandName 组件用于设置可作为访问的 命令 窗口工具栏上的命令名称。

    下面的示例定义一个工具窗口工具栏。

    <Menu guid="guidTWToolbarCmdSet" id="TWToolbar" type="ToolWindowToolbar">
      <CommandFlag>DefaultDocked</CommandFlag>
      <Strings>
        <ButtonText>Test Toolbar</ButtonText>
        <CommandName>Test Toolbar</CommandName>
      </Strings>
    </Menu>
    
  7. Groups 部分中,创建 Group 元素 包含命令要显示在工具栏。

    1. 设置组的顺序确定优先级该文件夹的位置将显示在工具栏。

      具有低优先级设置的组在工具栏上 (或顶层的左侧将出现对话框,基于工具栏如何放置)。

    2. 设置组的父级为 GUID: 工具栏的 ID。

    以下组显示在上例中定义的工具栏。

    <Group guid="guidTWToolbarCmdSet" id="TWToolbarGroup" priority="0x0000">
      <Parent guid="guidTWToolbarCmdSet" id="TWToolbar" />
    </Group>
    

显示在工具窗口的工具栏

使用托管包框架设置 (MPF)为程序包显示在工具窗口的工具栏。

ToolWindowPane 类的 ToolBar 属性采用 CommandID 实例作为其值。 CommandID 实例采用 (字符串) GUID 和和 (int) ID. 通过设置这些为 GUID: ID 对工具栏,工具栏绑定到工具窗口。 通常,这在从 ToolWindowPane 类派生类的构造函数对。

编译使用 MPF 的托管代码工具窗口只能有一个工具栏。

显示在工具窗口的工具栏

  1. 使用包向导时,将创建 VSPackage 中,命令设置的 GUID 自动添加到 GuidList 类,在 Guids.cs 文件中定义的。 生成的菜单和命令 ID 被添加到 PkgCmdIDList 类,在 PkgCmdID.cs 定义。 然后, GUID 和 ID 值进行访问,以可读形式,通过这两类。

    打开 PkgCmdID.cs。

  2. 添加项工具窗口工具栏上的和命令的所有要显示在工具栏。 每项的值必须与关联的 IDSymbol 元素的 value 属性。

    下面的示例创建定义工具栏的项之前。

    public const int TWToolbar = 0x1000;
    
  3. 打开 MyToolWindow.cs。

  4. 如下面的示例所示,构造函数,设置 MyToolWindow 类的 ToolBar 属性设置为工具栏的 GUID 和 ID 的新 CommandID 实例作为参数,。

    this.ToolBar = new CommandID(
        GuidList.guidTWToolbarCmdSet,
        PkgCmdIDList.TWToolbar);
    

    如果 GuidList 和 PkgCmdIDList 类未定义,可以使用 GUID 的 String 值和 ID 的 Int 值。

请参见

任务

如何:为按钮创建可重用的组

演练:将工具栏添加到工具窗口

其他资源

Visual Studio 命令 (表。Vsct) 文件

使用命令、菜单和工具栏的常规任务