我使用VS 2010 SDK创建并显示带有WPF控件作为内容的自定义ToolWindowPane
。我创建了一个新实例,并在每次单击工具菜单项时显示它(ProvideToolWindow
属性具有MultiInstances = true
)。
当用户附加调试器时(例如,在C#项目中点击F5),我的ToolWindowPane突然隐藏。无论用户处于什么环境,我都希望确保我的工具窗口在打开时始终可见。有没有办法可以强制执行?
我已尝试使用ProvideToolWindowVisibility
属性,但会自动显示我的工具窗口的新实例,而不是保留剩余的实例。
答案 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可以控制是否显示或隐藏工具 窗口。当用户切换视图或 上下文,例如设计,调试,全屏。