【问题标题】:How to achieve a captionless bordered Aero window?如何实现无标题边框 Aero 窗口?
【发布时间】:2010-08-11 20:36:35
【问题描述】:

我知道如何删除表单的边框,但我只是想删除标题。谷歌搜索 P/Invokes 并没有给我太多结果,所以我想知道,我怎样才能获得这样的结果?

【问题讨论】:

    标签: c# .net window border aero


    【解决方案1】:

    来自非托管开发,我会 P/Invoke {Get/Set}WindowLong 等 - 这是我最初的回应 - 但有一种托管方式来处理这个问题。

    您需要覆盖表单中的 CreateParams 属性,移除边框样式并添加粗框样式,如下所示:

    ...
    const UInt32 WS_THICKFRAME = 0x40000;
    const UInt32 WS_BORDER = 0x800000;
    ...
    
    protected override CreateParams CreateParams
    {
      get
      {
        CreateParams p = base.CreateParams;
        p.Style |= WS_THICKFRAME;
        p.Style &= ~WS_BORDER;
    
        return p;
      }
    }
    



    推荐阅读清单

    窗口样式 http://msdn.microsoft.com/en-us/library/ms632600%28VS.85%29.aspx

    Form::CreateParams 属性 http://msdn.microsoft.com/en-us/library/system.windows.forms.form.createparams.aspx

    【讨论】:

      【解决方案2】:

      我现在没有VS,所以不能给你确切的答案,抱歉。

      在窗口的属性窗格中查找边框样式,其中之一将允许您设置一个类似的:)

      编辑: 我知道我遗漏了一些东西...首先,查找属性“ControlBox”、“MaximizeBox”和“MinimizeBox”并将它们设置为 false,然后在“FormBorderStyle”属性中选择一个相当大的选项 - 是的,它看起来不像图片中的那个也是固定大小的,至少没有 PinVoke AFAIK-。

      还记得将“文本”属性留空。

      希望这会有所帮助:)

      【讨论】:

        猜你喜欢
        • 2012-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-07
        • 2014-01-31
        • 1970-01-01
        相关资源
        最近更新 更多