Windows Aero

Если хотите создать красивый и приятный интерфейс для своей программы то эта статья для вас!

Вот один из примеров использования Aero в Win 7:

Snimok1 Windows Aero

И так приступим. Ну конечно создадим новый проект и вставим туда вот этот код:

<StructLayout(LayoutKind.Sequential)> _
    Public Structure MARGINS
        Public Destra As Integer
        Public Sinistra As Integer
        Public Su As Integer
        Public Giu As Integer
    End Structure

    Declare Auto Function DwmIsCompositionEnabled Lib "dwmapi.dll" Alias "DwmIsCompositionEnabled" (ByRef pfEnabled As Boolean) As Integer

    Declare Auto Function DwmExtendFrameIntoClientArea Lib "dwmapi.dll" Alias "DwmExtendFrameIntoClientArea" (ByVal hWnd As IntPtr, ByRef pMargin As MARGINS) As Integer

    Dim pMargins As New MARGINS With {.Su = -1, .Sinistra = -1, .Destra = -1, .Giu = -1}

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim en As Boolean = False
        DwmIsCompositionEnabled(en)
        If en Then
            DwmExtendFrameIntoClientArea(Me.Handle, pMargins)
        End If
        Me.TransparencyKey = Color.FromKnownColor(KnownColor.ActiveCaption)
        Me.BackColor = Me.TransparencyKey
    End Sub

Ну вот собственно и всё, можно запускать!

Но что если вам нужно "заполнить" Aero не всю форму а допустим только её верхнею часть?

За это отвечает вот этот участок кода:

Dim pMargins As New MARGINS With {.Su = -1, .Sinistra = -1, .Destra = -1, .Giu = -1}

Мы видим что если всем параметрам присвоено -1, то форма вся становится прозрачной.

Каждый параметр отвечает за свой "отступ" от краев формы:

".Su" - с верху

".Sinistra" - с права

".Destra" - с лева

".Giu" - соответственно с низу

То есть если мы хотим вот так:

Snimok2 Windows Aero

То пишем:

Dim pMargins As New MARGINS With {.Su = 25, .Sinistra = 1, .Destra = 1, .Giu = 1}

Ну я надеюсь что все всё поняли, но на всякий случай вот исходник.

  Метки:
  Gemorg
  Просмотров: 4 710
  Запись опубликована в 15:33

Есть что сказать? Тогда действуй!