首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VSX -将ToolWindowPanes的初始位置设置为停靠

VSX -将ToolWindowPanes的初始位置设置为停靠
EN

Stack Overflow用户
提问于 2011-03-30 11:07:30
回答 4查看 1.8K关注 0票数 6

我正在创建一个Visual包,该包公开了一个工具窗口,并试图确保它在第一次加载包时停靠在主Visual窗口的左侧边缘。

代码语言:javascript
复制
[ProvideToolWindow(typeof(MyToolWindow), Orientation = ToolWindowOrientation.Left, 
    Style=VsDockStyle.Linked, Window=EnvDTE.Constants.vsWindowKindLinkedWindowFrame)])]
[ProvideToolWindowVisibility(typeof(MyToolWindow), VSConstants.UICONTEXT.NoSolution_string)]
public class MyPackage : Package
{
    ...

我尝试过上述的许多变体,但我所能实现的最好方法是将窗口停靠到底部,即使这样,每次包重新加载时,它也会继续重新停靠,而不是保持用户窗口的位置。

如何指定我的窗口窗格最初显示在主窗口的左侧?

EN

回答 4

Stack Overflow用户

发布于 2011-06-06 03:45:49

支持将项设置为VsDockStyle.Tabbed,这样您就可以连接到“工具箱”工具窗口。但我猜你已经想过了,这不适合你的情况。

虽然不是一个很好的解决方案,但您可以尝试这个解决方案。

  1. 使用所需的方向和窗口设置ProvideToolWindow,但将样式设置为浮动,因为不支持链接(http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.vsdockstyle.aspx):

EnvDTE.Constants.vsWindowKindMainWindow)

  • At (MyToolWindow),Style = VsDockStyle.Float,ToolWindowOrientation.Left= ToolWindowOrientation.Left,Window =MyToolWindow运行时,如果您发现工具窗口处于浮动状态,则停靠它:

如果指定的框架窗口当前处于浮动状态,则/停靠。/在VS2010中工作,在VS2008中似乎不起作用。/框架。私有静态空DockWindowIfFloating(IVsWindowFrame框架){ //获取当前工具窗口框架模式。对象currentFrameMode;frame.GetProperty((int)__VSFPROPID.VSFPROPID_FrameMode,out currentFrameMode);//如果当前处于浮动状态,则切换到停靠模式。if ((VSFRAMEMODE)currentFrameMode == VSFRAMEMODE.VSFM_Float) {VSFRAMEMODE.VSFM_Dock;}

正如我在备注中所指出的,这似乎只适用于VS2010 (不适用于VS2008)。

希望它能帮上忙,尽管如此。

票数 3
EN

Stack Overflow用户

发布于 2017-05-18 16:47:02

如果您希望它在默认情况下与其他窗口(如输出窗口、错误列表、查找结果等)停靠在底部,您可以这样做:

代码语言:javascript
复制
[ProvideToolWindow(typeof(ThePane),
                   Orientation=ToolWindowOrientation.Right,
                   Window=EnvDTE.Constants.vsWindowKindOutput,
                   Style=VsDockStyle.Tabbed)]

方向似乎没有什么区别,尽管,它似乎总是出现在左边。但对我来说足够近了。

票数 3
EN

Stack Overflow用户

发布于 2011-04-11 12:09:12

我不知道这是否行得通,但你可以试试:

我在注册表中寻找线索,找到SolutionExplorer工具窗口停靠的位置,并发现窗口参数包含"DocumentWell“。

所以你可以试试这个:

代码语言:javascript
复制
[ProvideToolWindow(typeof(MyToolWindow), Orientation = ToolWindowOrientation.Right, Style=VsDockStyle.Tabbed, Window="DocumentWell")])]

代码语言:javascript
复制
Window=EnvDTE.Constants.vsWindowKindMainWindow

希望这能帮上忙

托马斯。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5485491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档