如何实现无标题的Aero窗口?

时间:2010-08-11 20:36:35

标签: c# .net window border aero

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

alt text

2 个答案:

答案 0 :(得分:2)

来自非托管开发,我会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

答案 1 :(得分:-1)

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

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

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

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

希望这会有所帮助:)