3.3将命令添加到解决方案资源管理器工具栏

来源:互联网 发布:淘宝装修页头图片素材 编辑:程序博客网 时间:2024/06/05 11:06

将命令添加到解决方案资源管理器工具栏

Visual Studio 2015
其他版本
 

若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。

本演练演示如何向其中添加按钮解决方案资源管理器工具栏。

在 Visual Studio 中,工具栏或菜单上的任何命令称为一个按钮。 当单击按钮时,将执行的命令处理程序中的代码。 通常情况下,相关的命令被组合在一起以形成一个组。 菜单或工具栏充当容器的组。 优先级确定的菜单中或在工具栏上显示组中的单个命令的顺序。 您可以防止一个按钮工具栏或菜单上显示通过控制其可见性。 中列出的命令<VisibilityConstraints>仅在相关联的上下文中会出现.vsct 文件的部分。 可见性不能应用于组。

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

System_CAPS_ICON_note.jpg 说明

使用 XML 命令表 (.vsct) 文件而不是命令表配置 (.ctc) 文件来定义菜单和命令在你的 Vspackage 中的显示方式。 有关详细信息,请参阅 Visual Studio Command Table (.Vsct) Files。

先决条件

启动 Visual Studio 2015 中,您并不安装 Visual Studio SDK 从下载中心获得。 它将包括作为 Visual Studio 安装程序中的可选功能。 您还可以在以后安装 VS SDK。 有关详细信息,请参阅安装 Visual Studio SDK。

使用菜单命令创建扩展

创建一个名为的 VSIX 项目SolutionToolbar。 添加一个名为的菜单命令项模板工具栏按钮。 有关如何执行此操作的信息,请参阅使用菜单命令创建扩展。

添加到解决方案资源管理器工具栏按钮

本部分演练演示如何向其中添加按钮解决方案资源管理器工具栏。 单击该按钮,运行在该回调方法的代码。

  1. 在 ToolbarButtonPackage.vsct 文件中,转到<Symbols>部分。 <GuidSymbol>节点包含菜单组和包模板已生成命令。 添加<IDSymbol>到此节点,以声明的组,将保存您的命令的元素。

    XML
    <IDSymbol name="SolutionToolbarGroup" value="0x0190"/>  
  2. <Groups>部分中,在现有的组条目后, 您声明的新组中定义上一步。

    XML
    <Group guid="guidToolbarButtonPackageCmdSet"         id="SolutionToolbarGroup" priority="0xF000">          <Parent guid="guidSHLMainMenu" id="IDM_VS_TOOL_PROJWIN"/>        </Group>  

    父级 GUID:ID 对设置为guidSHLMainMenuIDM_VS_TOOL_PROJWIN放入此组解决方案资源管理器工具栏上,并在设置高优先级值将其放在其他命令组的后面。

  3. <Buttons>部分中,更改所生成的父 ID<Button>条目以反映您在上一步中定义的组。 已修改<Button>元素应如下所示︰

    XML
    <Button guid="guidToolbarButtonPackageCmdSet" id="ToolbarButtonId" priority="0x0100" type="Button">      <Parent guid="guidToolbarButtonPackageCmdSet" id="SolutionToolbarGroup" />      <Icon guid="guidImages" id="bmpPicStrikethrough" />      <Strings>          <ButtonText>Invoke ToolbarButton</ButtonText>      </Strings>  </Button>  
  4. 生成项目并启动调试。 将显示的实验实例。

    解决方案资源管理器工具栏应显示现有的按钮右侧的新建命令按钮。 该按钮的图标是删除线。

  5. 单击新建按钮。

    包含消息的对话框ToolbarButtonPackage 内 SolutionToolbar.ToolbarButton.MenuItemCallback()应显示。

控制按钮的可见性

本部分演练演示如何控制工具栏按钮的可见性。 通过将上下文设置为中的一个或多个项目<VisibilityConstraints>部分 SolutionToolbar.vsct 文件的限制按钮以显示只有当项目均为打开。

若要打开一个或多个项目时显示的按钮

  1. <Buttons>部分的 ToolbarButtonPackage.vsct,将两个命令标志添加到现有<Button>元素、 之间<Strings><Icons>标记。

    XML
    <CommandFlag>DefaultInvisible</CommandFlag>  <CommandFlag>DynamicVisibility</CommandFlag>  

    DefaultInvisibleDynamicVisibility标志必须设置操作中的该条目<VisibilityConstraints>部分才会生效。

  2. 创建<VisibilityConstraints>具有两个部分<VisibilityItem>条目。 将这个新部分放在结束后立即</Commands>标记。

    XML
    <VisibilityConstraints>      <VisibilityItem guid="guidToolbarButtonPackageCmdSet"            id="ToolbarButtonId"            context="UICONTEXT_SolutionHasSingleProject" />      <VisibilityItem guid="guidToolbarButtonPackageCmdSet"            id="ToolbarButtonId"            context="UICONTEXT_SolutionHasMultipleProjects" />  </VisibilityConstraints>  

    可见性的每一项表示在其下显示指定按钮的条件。 若要应用多个条件,必须创建多个条目为相同的按钮。

  3. 生成项目并启动调试。 将显示的实验实例。

    解决方案资源管理器工具栏不包含删除线按钮。

  4. 打开包含项目的任何解决方案。

    删除线按钮将出现在现有按钮右侧的工具栏。

  5. 文件菜单上,单击关闭解决方案。 从工具栏中,该按钮即消失。

由控制按钮的可见性Visual Studio直到加载 VSPackage。 加载 VSPackage 中之后,由 VSPackage 控制按钮的可见性。 有关详细信息,请参阅MenuCommands Vs。OleMenuCommands。