我正在开发一个Visual Studio AddIn,它显示一个类似于通常的Toolbox的ToolWindow。现在我想把它打开就像普通的工具箱一样。这是用于打开它的代码(_applicationObject
和_addInInstance
是从OnConnection参数获得的DTE2和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);
结果类似于我想要实现的结果,即工具箱和我的窗口停靠在一起,但生成的窗口是浮动的,而不是停靠在主窗口的左侧。
答案 0 :(得分:1)
我认为以下链接对您有用:How to: Change Window Characteristics 基本上,您需要创建/检索适当的WindowFrame并将窗口放入其中。 希望这会有所帮助。