Visual Studio 2010 WPF Addin不能正确显示选项卡名称

时间:2014-08-29 03:38:46

标签: c# wpf visual-studio-2010 add-in

我在WPF中为visual studio 2010创建了一个插件。一切看起来不错,除了停靠时,标签名称消失。请参阅下面的截图。

Addin Screenshot

我在MSDN论坛上发现了一些声明以下内容的内容

  
      
  1. 使用IVsUIShell.GetToolWindowEnum()为mWindow获取相应的IVsWindowFrame。
  2.   
  3. 调用IVsWindowFrame.SetProperty((int)__ VSFPROPID.VSFPROPID_Caption,“my caption”);
  4.   

我已经尝试过这样做,但是我无法让IDE识别GetService中的方法来查找IVsUIShell。之后情况变得更糟。

有人理解这条指令,如果是的话,你能帮助我实现吗?好像我错过了一个引用,但其他一切看起来都很正常。

先谢谢,克里斯

1 个答案:

答案 0 :(得分:0)

我终于明白了。这是我最终使用的代码 -

            // Get the service provider on the object
            Microsoft.VisualStudio.Data.ServiceProvider serviceProvider = new Microsoft.VisualStudio.Data.ServiceProvider(this._applicationObject as Microsoft.VisualStudio.OLE.Interop.IServiceProvider);

            // Get the shell service
            var vsUIShell = (IVsUIShell)serviceProvider.GetService(typeof(SVsUIShell));
            Guid slotGuid = new Guid(guidString);

            // Find the associated window frame on this toolwindow
            IVsWindowFrame wndFrame;
            vsUIShell.FindToolWindow((uint)__VSFINDTOOLWIN.FTW_fFrameOnly, ref slotGuid, out wndFrame);

            // Set the text on the window tab name
            wndFrame.SetProperty((int)__VSFPROPID.VSFPROPID_Caption, "Upgraded Task List");

它从visual studio实例中获取服务提供者。然后,您可以使用工具窗口的GUID获取工具窗口框架。最后,使用最后一行在工具窗口选项卡上设置文本。

希望这是有道理的。我花了很长时间才弄清楚这一点。