visual-studio - 是否可以在 Visual Studio 状态栏中显示自定义图标

标签 visual-studio visual-studio-2013 visual-studio-2015 vs-extensibility

我知道使用 IVSStatusBar 在 Visual Studio 状态栏中显示自定义文本界面。我什至有blogged关于它。

但是,我需要在 Visual Studio 状态栏上显示自定义图标。类似于 Resharper 显示解决方案错误的方法。单击该图标时,它还会弹出一个上下文菜单。

Resharper Icon

所以,如何在 Visual Studio 状态栏中显示自定义图标,并在可能的情况下在单击时显示菜单? .一个例子会有所帮助。

IVSStatusBar 的 Animation 方法已经显示图标,但使用 Constants 中定义的预定义图标.是否可以有自定义图标并传递给动画方法?

在探索 SDK 时,我发现 IVSStatusBarUser interface 可用于在显示实现该接口(interface)的窗口时显示自定义信息。但我不确定该界面是否可用于显示自定义图标。

最佳答案

没有针对这种状态栏可扩展性的已发布 API。在我自己的一个扩展(PerfWatson Monitor)中,我通过搜索 WPF 可视化树、使用递归搜索和 VisualTreeHelper 来定位状态栏元素。 , 从 Application.Current.MainWindow 下降在右下角寻找调整大小的抓手 - 带有 Name 的子元素属性设置为 "ResizeGripControl" .当我找到抓手后,我查看它的父级(它应该是 DockPanel )并将我的控件插入其中。请注意,正如您的屏幕截图所示,众所周知,Resharper 采用了类似的技巧,因此您必须想出一个在安装和不安装 Resharper 的情况下都可以使用的策略。另请注意,状态栏的某些部分(文本、行/列信息和任何动画)在它们自己的 UI 线程中运行,因此如果您的控件最终出现在此处,请小心。

我注意到您还询问有关扩展现有动画的问题。是的,您可以通过 16x16 帧的位图条提供您自己的动画。见 http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/fef208e7-b79d-4a0c-94fe-e6861196e1f5/#ba47b61c-77a8-46c8-aa10-a04211312e6c例如。不幸的是,这不允许可点击的菜单。

关于visual-studio - 是否可以在 Visual Studio 状态栏中显示自定义图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30096546/

相关文章:

visual-studio - TeamCity NuGet 源 : Available updates not working in Visual Studio with list of packages sufficiently large (> 50)

c++ - 无法在 visual studio 2015 中打开源文件

android - 通过用户界面更改 Visual Studio 2015 Apache Cordova 移动应用程序中的 Android SDK 版本

visual-studio-2015 - IApplicationBuilder 不包含 UseWebApi 的定义

c# - 将调试信息嵌入到构建中不包含任何调试符号

c++ - 改进 OpenCV 中的 Grabcut

git - Visual Studio 中的本地 Git 存储库 url 错误 : Unsupported URL protocol

visual-studio - Resharper - 字体和颜色设置不起作用

c# - 添加 Visual Studio 2013 Update 4 中缺少的 STS 引用

c# - 如何在 Outlook 中添加新选项卡。使用 Visual Studio 2013 进行 Outlook 插件/插件开发