2011-09-09 29 views
-1

我正在开发一个Visual Studio AddIn,它显示了一个类似于通常Toolbox的ToolWindow。现在我想打开它时就像正常的工具箱一样停靠。这是用来打开它(_applicationObject_addInInstance是DTE2和外接从在OnConnection参数)中获得的代码:如何以编程方式将工具窗口停靠在Visual Studio中AddIn

Windows2 wins2obj = (Windows2)_applicationObject.Windows; 
Assembly asm = Assembly.GetExecutingAssembly(); 
string an = asm.Location; 
string className = "MyAddIn.MyToolboxCtl"; 
object programmableObject = null; 
Window windowToolWindow = wins2obj.CreateToolWindow2(_addInInstance, an, 
    className, "A caption", aGuid, 
    ref programmableObject); 

我能够使它可见之前停靠该窗口的IsFloating属性设置为false:

windowToolWindow.IsFloating = false; 
windowToolWindow.Visible = true; 

这几乎没问题,但窗口停靠在主窗口的下半部分,在那里您通常会看到输出,观察,调用堆栈以及那种窗口。有没有办法强制它在左侧打开,你通常会看到工具箱?

编辑:

我想我的对接窗口和工具箱窗口一起创建LinkedWindowFrame:

Window2 w1 = (Window2)wins2obj.Item(Constants.vsWindowKindToolbox); 
Window2 frame = (Window2)wins2obj.CreateLinkedWindowFrame(w1, windowToolWindow, 
         vsLinkedWindowType.vsLinkedWindowTypeTabbed); 

结果好歹相似,我想要实现的,即工具箱和我的窗口停靠在一起,但是由此产生的窗口是浮动的,而不是停靠在主窗口的左侧。

回答

相关问题