我已经创建了一个Visual Studio 2012扩展,将ComboBox放在Source Control Explorer中。
我在我的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>
我想放置&#34; MyComboBox &#34;在下面的组中,同一组中有标签&#34;来源位置&#34;与导航器。
有可能吗? 谢谢, 威廉萨德
答案 0 :(得分:1)
Source Control Explorer不太可能是可自定义的元素。从技术上讲,它不是Visual Studio的一部分,而是一个加载项/扩展本身。即使它是可定制的,它也很可能不会接受vsct的东西。
人们不得不创建自己的Source Control Explorer clones来自定义内容。
充其量,您可以通过vsct将自己的自定义工具栏添加到Source Control Explorer窗口,无论如何都是VS ToolWindow。但是,您将需要工具栏的GUID。它未列在standard VS window guids。
中希望这至少可以为你提供一个方向。
编辑: 您可以使用下面的代码浏览Source Control Explorer窗口。本质上,枚举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)
{
}
}