-1

我正在开发一个 Visual Studio 插件,它显示了一个类似于常用工​​具箱的工具窗口。现在我想在打开它时让它像普通的工具箱一样停靠。这是用于打开它的代码(_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);

结果在某种程度上类似于我想要实现的,即工具箱和我的窗口停靠在一起,但生成的窗口是浮动的,而不是停靠在主窗口的左侧。

4

1 回答 1

1

我认为以下链接对您有用:如何:更改窗口特征 基本上,您需要创建/检索适当的 WindowFrame 并将您的窗口放入其中。希望这可以帮助。

于 2011-09-11T15:06:43.437 回答