0

我已经创建了一个 Visual Studio 2012 扩展来在源代码管理资源管理器中放置一个 ComboBox。

我在我的 vsct 文件中使用这个 guid:

  <!-- MyComboBox in Source Control Explorer -->
  <Combo guid="myMainguid" id="cmdSSEComboBox" priority="0x0700" type="DropDownCombo" defaultWidth="130" idCommandList="cmdSSEGetItemsComboBox">
    <Parent guid="guidSourceControlExplorer" id="SSEToolBar" />
    <CommandFlag>IconAndText</CommandFlag>
    <CommandFlag>CommandWellOnly</CommandFlag>
    <Strings>
      <ButtonText>MyComboBox:</ButtonText>
    </Strings>
  </Combo>

<!-- Source Control Explorer -->
<GuidSymbol name="guidSourceControlExplorer" value="{FFE1131C-8EA1-4D05-9728-34AD4611BDA9}">
  <IDSymbol name="SSEToolBar" value="0x1106"/>
</GuidSymbol>

我想将“ MyComboBox ”放在下面的组中,与导航器标签“源位置”相同的组中。

可能吗?谢谢,威廉萨德

4

1 回答 1

1

源代码管理资源管理器不太可能是可自定义的元素。从技术上讲,它不是 Visual Studio 的一部分,而是加载项/扩展本身。即使它是可定制的,它也很可能不会接受 vsct 的东西。

人们不得不创建自己的源代码管理资源管理器克隆来自定义内容。

充其量,您可以通过 vsct 将您自己的自定义工具栏添加到源代码管理资源管理器窗口,这无论如何都是一个 VS ToolWindow。但是,您将需要工具栏的 GUID。它没有在标准的 VS 窗口指南中列出。

希望这至少能给你一个方向。

编辑:您可以使用下面的代码浏览源代码管理资源管理器窗口。本质上,枚举 DTE 中的所有窗口(在 VsPackage 中)并在找到您的窗口时放置一个调试点。然后你可以探索它。在屏幕截图中,您可以看到我深入到 CommandBar。如果不是通过 VSCT,您也许可以在运行时将您的组合注入那里。

找到命令栏

 for (int i = 0; i < dte.Windows.Count; i++)
 {
     try
     {
         if (dte.Windows.Item(i).Caption.ToLower().Contains("source control"))
         {
             MessageBox.Show("");
         }
     }
     catch (Exception)
     {
     }
 }
于 2015-10-10T15:13:45.430 回答