如何:创建工具窗口的工具栏
可以将工具栏添加到工具窗口通过定义类型 ToolWindowToolbar 菜单在 VSPackage .vsct 文件,然后编程包显示它。
在工具窗口的工具栏与工具栏泛型集成开发环境 (ide) 在以下 (IDE)方面有所不同:
IDE 工具栏可以通过定义类型 Toolbar 菜单创建在 .vsct 文件。 在目标工具窗口必须以编程方式创建工具窗口工具栏。
使用 自定义 对话框,用户可以配置 IDE 工具栏。 不能按照这种方式配置工具窗口工具栏。
创建工具窗口工具栏
工具窗口工具栏先定义为 .vsct 文件的 Menu 元素 。
以下过程假定,您有工具窗口。 .vsct 文件中定义的一个 VSPackage 项目。 如果在包向导创建 VSPackage,在中,选择 工具窗口 添加 .vsct 文件来打包项目和定义工具窗口。
创建工具窗口工具栏
在编辑器中打开 .vsct 文件。
查找由 Symbols 元素窗体的一部分。
查找包含菜单、组和命令的 GuidSymbol 元素 。 默认情况下,名为 GUIDProjectNameCmdSet。
如下面的示例所示,这些工具栏的 IDSymbol 元素 和一个组的能存放命令,。
<IDSymbol name="TWToolbar" value="0x1000" /> <IDSymbol name="TWToolbarGroup" value="0x1050" />
GuidSymbol 和 IDSymbol 元素的 name 属性在所定义的工具栏、命令或组中提供 GUID: 委托该工具栏、命令或组的 ID 匹配。 GUID 表示为 VSPackage 定义设置的命令。 多个命令在包设置中定义。 GUID: 用于标识每个项目必须是唯一的 ID 匹配。
定义工具栏为 Menus 部分的 Menu 元素 ,如下所示:
设置 guid 和 id 属性设置为 GUID: 新工具栏的 ID。
设置 type 属性设置为 ToolWindowToolbar。
在 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>
在 Groups 部分中,创建 Group 元素 包含命令要显示在工具栏。
设置组的顺序确定优先级该文件夹的位置将显示在工具栏。
具有低优先级设置的组在工具栏上 (或顶层的左侧将出现对话框,基于工具栏如何放置)。
设置组的父级为 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 的托管代码工具窗口只能有一个工具栏。
显示在工具窗口的工具栏
使用包向导时,将创建 VSPackage 中,命令设置的 GUID 自动添加到 GuidList 类,在 Guids.cs 文件中定义的。 生成的菜单和命令 ID 被添加到 PkgCmdIDList 类,在 PkgCmdID.cs 定义。 然后, GUID 和 ID 值进行访问,以可读形式,通过这两类。
打开 PkgCmdID.cs。
添加项工具窗口工具栏上的和命令的所有要显示在工具栏。 每项的值必须与关联的 IDSymbol 元素的 value 属性。
下面的示例创建定义工具栏的项之前。
public const int TWToolbar = 0x1000;
打开 MyToolWindow.cs。
如下面的示例所示,构造函数,设置 MyToolWindow 类的 ToolBar 属性设置为工具栏的 GUID 和 ID 的新 CommandID 实例作为参数,。
this.ToolBar = new CommandID( GuidList.guidTWToolbarCmdSet, PkgCmdIDList.TWToolbar);
如果 GuidList 和 PkgCmdIDList 类未定义,可以使用 GUID 的 String 值和 ID 的 Int 值。