如何向 Visual Studio 扩展添加其他工具窗口?

Posted

技术标签:

【中文标题】如何向 Visual Studio 扩展添加其他工具窗口?【英文标题】:How to add additional tool windows to a Visual Studio Extension? 【发布时间】:2015-04-11 13:56:57 【问题描述】:

创建扩展for Visual Studio 2013 时,默认设置工具窗口。但是,我想要一个 second 工具窗口,但看不到应该如何去做。

【问题讨论】:

请注意正确的术语是 extension 而不是 plug-in 我一开始也是这么想的——但后来每个人都谈到了“插件”。编辑了我的帖子。 实际上,您的场景中的正确术语是“Package”,它是唯一一种能够添加工具窗口的扩展。另一个是“加载项”,但加载项在 VS 2013 中已弃用,将在 VS 2015 中删除。 【参考方案1】:

我已经创建了一个指南:

HOWTO:在 Visual Studio 包中使用 ToolWindowPane 类创建工具窗口 http://www.visualstudioextensibility.com/2015/02/20/mz-tools-articles-series-howto-create-a-toolwindow-with-a-toolwindowpane-class-in-a-visual-studio-package/

【讨论】:

【参考方案2】:

好吧,我刚刚发现了一些东西 - 所以我要回答我自己的问题,以便其他有同样问题的人可以利用它:

    按照this tutorial 设置您的扩展程序,但检查“工具窗口

    为工具窗口“ToolWindow2Control”创建一个新的用户控件并复制粘贴ToolWindowControl.xamlToolWindowControl.xaml.cs的内容 em> 相应地

    添加一个类“ToolWindow2”并复制粘贴 ToolWindow.cs 中的内容。将 GUID 更改为新的(工具->创建 GUID)

    NameOfYourProject.vsct 中添加代码,通过复制 Buttons 部分中的 Button,在 View->Other Windows 中显示第二个条目。更改ButtonText、优先级、Button的id和Icon的id。

    将按钮的 ID 添加到页面底部符号下的条目中。它应该是 guidNameOfYourProjectCmdSet 下的第三个条目。

    打开PkgCmdID.cs(或PkgCmdIDList.cs)并在那里添加按钮的ID,例如public const uint cmdidMyTool2 = 0x102;p>

    为您的项目/资源添加另一个图标。然后在 NameOfYourProject.vsct 的 Bitmaps 部分添加另一个 Bitmap 条目,使用您之前为 Icon 提供的 GUID-id。像这样:&lt;Bitmap guid="guidImages2" href="Images\test.ico" usedList="testIcon"/&gt; 并在 Symbols 部分创建另一个 GuidSymbol 条目,其中包含一个新的 GUID 和一个 IDSymbol 条目,该条目与您在 usedList 中使用的名称相同,如下所示:<GuidSymbol name="guidImages2" value="7BC1F97F-2693-4186-91CC-A35AE95886CE" > <IDSymbol name="testIcon" value="1" /> </GuidSymbol>

    将此行添加到 NameOfYourProjectPackage.cs[ProvideToolWindow(typeof(ToolWindow2))]

    NameOfYourProjectPackage.cs 中编辑 Initialize 方法,将 // Create the command for the tool window 下的 3 行复制粘贴到其下方。在第一行使用我们在第 6 步中给出的 id (cmdidMyTool2)。在第 2 行中使用新的 MenuCommand 事件处理程序 ShowToolWindow2。并更改变量名称。

    创建一个新方法ShowToolWindow2。从 ShowToolWindow 方法中复制粘贴并将第一行中的 typeof 更改为 ToolWindow2

应该是这样的。我希望我没有忘记任何事情。然后可以在Views->Other Windows

下打开两个窗口

【讨论】:

是的,没错。包中的工具窗口需要两个文件(用户控件和类)和一些属性、回调方法以及 Guid 和 Id 的重复声明的粘合。 是的 - 真的很奇怪为什么似乎没有人考虑为它创建一个简单的指南。

以上是关于如何向 Visual Studio 扩展添加其他工具窗口?的主要内容,如果未能解决你的问题,请参考以下文章

visual Studio 2017 扩展开发《向Visual Studio菜单栏新增一个菜单》

如何向 Visual Studio 2017 添加功能?

如何向 Visual Studio 添加新的连接提供程序?

Visual Studio Code - 如何向 python 路径添加多个路径?

如何在 Visual Studio Code 中为 Flutter 添加 iOS 模拟器?

visual Studio .NET 安装