locked
VSX FAQ: 在运行时我如何设置窗口工具的大小? RRS feed

  • 问题

  • 为了帮助大家更好地学习 Visual Studio Extensibility,微软论坛技术支持团队编辑了一些列的 "Visual Studio Extensibility 常见问题及解答" 精华帖。

    本帖的主题是:在运行时我如何设置窗口工具的大小?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 "Visual Studio Extensibility 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/4286da37-2984-49a0-870b-ae89f9bc7375


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年5月13日 8:16

答案

  • 由于Ed在该帖子中指出-基本理念是获得IVsWindowFrame接口并调用SetFramePos()方法。获取IVsWindowFrame接口可能有点棘手,你在IServiceProvider上查询SVsWindowFrame服务,通过你的工具窗口的IVsWindowPane.SetSite方法来实现。如果你使用的是MPF工具窗口,你可以使用ToolWindowPane下的Frame 属性,但只有在OnToolWindowCreated方法被调用之后可以(确保工具窗口已经设置)。

    代码示例:

    Guid nullGuid = Guid.Empty;

    ToolWindowPane window = this.FindToolWindow(typeof(YourToolWindowClass), 0, true);

    if ((null == window) || (null == window.Frame))

    {

    thrownewNotSupportedException(Resources.CanNotCreateWindow);

    }

    IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;

    Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show());

    windowFrame.SetFramePos(VSSETFRAMEPOS.SFP_fSize, ref nullGuid, 5, 5, 305, 305);

    请注意,Show方法被执行后调用SetFramePos方法

     

    相关帖子:

    http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/84dbae91-ee69-4081-b18a-5e3c37c1246f


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    MSDN 论坛好帮手 立刻免费下载  MSDN 论坛好帮手
    2011年5月13日 8:17