我知道使用 IVSStatusBar 在 Visual Studio 状态栏中显示自定义文本界面。我什至有blogged关于它。
但是,我需要在 Visual Studio 状态栏上显示自定义图标。类似于 Resharper 显示解决方案错误的方法。单击该图标时,它还会弹出一个上下文菜单。
所以,如何在 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/