我正在创建一个Visual包,该包公开了一个工具窗口,并试图确保它在第一次加载包时停靠在主Visual窗口的左侧边缘。
[ProvideToolWindow(typeof(MyToolWindow), Orientation = ToolWindowOrientation.Left,
Style=VsDockStyle.Linked, Window=EnvDTE.Constants.vsWindowKindLinkedWindowFrame)])]
[ProvideToolWindowVisibility(typeof(MyToolWindow), VSConstants.UICONTEXT.NoSolution_string)]
public class MyPackage : Package
{
...我尝试过上述的许多变体,但我所能实现的最好方法是将窗口停靠到底部,即使这样,每次包重新加载时,它也会继续重新停靠,而不是保持用户窗口的位置。
如何指定我的窗口窗格最初显示在主窗口的左侧?
发布于 2011-06-06 03:45:49
支持将项设置为VsDockStyle.Tabbed,这样您就可以连接到“工具箱”工具窗口。但我猜你已经想过了,这不适合你的情况。
虽然不是一个很好的解决方案,但您可以尝试这个解决方案。
EnvDTE.Constants.vsWindowKindMainWindow)
如果指定的框架窗口当前处于浮动状态,则/停靠。/在VS2010中工作,在VS2008中似乎不起作用。/框架。私有静态空DockWindowIfFloating(IVsWindowFrame框架){ //获取当前工具窗口框架模式。对象currentFrameMode;frame.GetProperty((int)__VSFPROPID.VSFPROPID_FrameMode,out currentFrameMode);//如果当前处于浮动状态,则切换到停靠模式。if ((VSFRAMEMODE)currentFrameMode == VSFRAMEMODE.VSFM_Float) {VSFRAMEMODE.VSFM_Dock;}
正如我在备注中所指出的,这似乎只适用于VS2010 (不适用于VS2008)。
希望它能帮上忙,尽管如此。
发布于 2017-05-18 16:47:02
如果您希望它在默认情况下与其他窗口(如输出窗口、错误列表、查找结果等)停靠在底部,您可以这样做:
[ProvideToolWindow(typeof(ThePane),
Orientation=ToolWindowOrientation.Right,
Window=EnvDTE.Constants.vsWindowKindOutput,
Style=VsDockStyle.Tabbed)]方向似乎没有什么区别,尽管,它似乎总是出现在左边。但对我来说足够近了。
发布于 2011-04-11 12:09:12
我不知道这是否行得通,但你可以试试:
我在注册表中寻找线索,找到SolutionExplorer工具窗口停靠的位置,并发现窗口参数包含"DocumentWell“。
所以你可以试试这个:
[ProvideToolWindow(typeof(MyToolWindow), Orientation = ToolWindowOrientation.Right, Style=VsDockStyle.Tabbed, Window="DocumentWell")])]或
Window=EnvDTE.Constants.vsWindowKindMainWindow希望这能帮上忙
托马斯。
https://stackoverflow.com/questions/5485491
复制相似问题