VB 2013:在无边界表单上启用 Aero

Posted

技术标签:

【中文标题】VB 2013:在无边界表单上启用 Aero【英文标题】:VB 2013: Enabling Aero on borderless form 【发布时间】:2014-09-23 03:33:13 【问题描述】:

我正在寻找一种将 Windows 的 Aero 功能重新添加到 Visual Basic 2013 中的无边框窗体中的方法。我为标题栏编写了一个自定义组件,以允许为其设置我自己的背景/设计,如以及最小化、最大化和关闭按钮。但是,我遇到了一些问题,想办法让 Windows Aero 属性恢复正常,例如:

将 拖动到屏幕的顶部或两侧以更改其大小 调整大小/最小化/最大化时的动画

我正在制作一个自定义外观的表单,例如在 Google Chrome 和 Visual Studios 中找到的表单。 Aero 功能是我唯一的问题。有谁碰巧知道如何将它添加到 Visual Basic 2013 中的无边框表单中?

【问题讨论】:

【参考方案1】:

可能有帮助的部分答案:

在没有表单边框的情况下,我能够使调整大小部分起作用的唯一方法是在所有侧面使用面板,使用鼠标事件来控制操作。面板是透明的,但鼠标输入事件也有助于更改光标事件。

'**************************************************
    'MouseDown = User clicks the button
    'MouseMove = User is holding down the left mouse button and moves the mouse.  Simulates top of a regular form
    'MouseUp = User releases the mouse button 
    '**************************************************
    Private Sub Panel1_MouseDown(sender As Object, e As MouseEventArgs) Handles Panel1.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Left Then
            drag = True
            mouse_x = Windows.Forms.Cursor.Position.X - Me.Left
            mouse_y = Windows.Forms.Cursor.Position.Y - Me.Top
        End If
    End Sub
    Private Sub Panel1_MouseMove(sender As Object, e As MouseEventArgs) Handles Panel1.MouseMove
        If drag Then
            Me.Top = Windows.Forms.Cursor.Position.Y - mouse_y
            Me.Left = Windows.Forms.Cursor.Position.X - mouse_x
        End If
    End Sub
    Private Sub Panel1_MouseUp(sender As Object, e As MouseEventArgs) Handles Panel1.MouseUp
        drag = False
    End Sub

【讨论】:

以上是关于VB 2013:在无边界表单上启用 Aero的主要内容,如果未能解决你的问题,请参考以下文章

处理 Windows 7 Aero 主题上的卸载表单[重复]

邮递员多部分/表单数据错误:缺少开始边界

在启用 Aero 的 Windows 7 上运行 .NET 2.0 应用程序窗体应用程序会导致菜单交互使应用程序崩溃

如果表单数据边界包含在附件中怎么办?

表单内堆栈内的按钮在边界外处于活动状态

警告:第 0 行未知中的多部分/表单数据 POST 数据中缺少边界