VS SDK:ToolWindowPane在调试时隐藏

时间:2012-01-08 01:02:50

标签: visual-studio visual-studio-sdk

我使用VS 2010 SDK创建并显示带有WPF控件作为内容的自定义ToolWindowPane。我创建了一个新实例,并在每次单击工具菜单项时显示它(ProvideToolWindow属性具有MultiInstances = true)。

当用户附加调试器时(例如,在C#项目中点击F5),我的ToolWindowPane突然隐藏。无论用户处于什么环境,我都希望确保我的工具窗口在打开时始终可见。有没有办法可以强制执行?

我已尝试使用ProvideToolWindowVisibility属性,但会自动显示我的工具窗口的新实例,而不是保留剩余的实例。

2 个答案:

答案 0 :(得分:0)

对于VS 2010 SDK,Microsoft添加了一个新标志__VSCREATETOOLWIN2.CTW_fDocumentLikeTool

您可以这样使用:

public override void OnToolWindowCreated()
{
    IVsWindowFrame windowFrame = Frame as IVsWindowFrame;

    object varFlags;

    windowFrame.GetProperty((int)__VSFPROPID.VSFPROPID_CreateToolWinFlags, out varFlags);
    int flags = (int)varFlags | (int)__VSCREATETOOLWIN2.CTW_fDocumentLikeTool;
    windowFrame.SetProperty((int)__VSFPROPID.VSFPROPID_CreateToolWinFlags, flags);
}

这样,当您进行调试

时,工具窗口会在“Document Well”处保持打开状态

但是我必须说这在调试项目时给我们一些问题,避免我们在调试时打开代码文件,就像Visual Studio文档管理是“阻塞”一样,这个新标志没有太多信息......

所以我们首选挂钩EnvDTE.DebuggerEvents并显示ToolWindow,如果在调试会话启动时隐藏...

(我们的ToolWindow有MultiInstances = false)

答案 1 :(得分:0)

实施QueryShowTool

Integer.getValueOf(5)
  

使VSPackage可以控制是否显示或隐藏工具   窗口。当用户切换视图或   上下文,例如设计,调试,全屏。

请参见https://docs.microsoft.com/en-us/visualstudio/extensibility/opening-a-dynamic-tool-window?view=vs-2017