erweiterter Aero Rahmen: darstellungsfehler

  • VB.NET

    erweiterter Aero Rahmen: darstellungsfehler

    Hallo,

    also ich hab folgendes problem:

    ich hab mit

    VB.NET-Quellcode

    1. #Region "Aero"Public Structure MARGINS
    2. Dim Left As Integer
    3. Dim Right As Integer
    4. Dim top As Integer
    5. Dim bottom As Integer
    6. End StructurePublic Structure DWM_BLURBEHIND
    7. Dim dwFlags As UInteger
    8. Dim fEnable As BooleanDim hRegionBlur As IntPtr
    9. Dim fTransitionOnMaximized As BooleanConst DWM_BB_ENABLE As UInteger = &H1
    10. Const DWM_BB_BLURREGION As UInteger = &H2Const DWM_BB_TRANSITIONONMAXIMIZED As UInteger = &H4
    11. End Structure
    12. Public isVista As Boolean = FalsePublic MARG As New MARGINS()
    13. Public opsys As System.OperatingSystem = System.Environment.OSVersionPublic Declare Sub DwmExtendFrameIntoClientArea Lib "dwmapi.dll" (ByVal hwnd As IntPtr, ByRef margins As MARGINS)
    14. Public Declare Sub DwmEnableBlurBehindWindow Lib "dwmapi.dll" (ByVal hWnd As IntPtr, ByVal pBlurBehind As DWM_BLURBEHIND)Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
    15. If opsys.Version.Major >= 6 Then
    16. isVista = True
    17. End IfMyBase.OnLoad(e)
    18. SetGlassRegion()
    19. End SubOverloads Shared Sub Main(ByVal args() As String)
    20. On Error Resume Next
    21. Application.EnableVisualStyles()Application.SetCompatibleTextRenderingDefault(False)
    22. Application.Run(New frmMain())
    23. End SubPrivate Sub SetGlassRegion()
    24. If isVista = True ThenMARG.top = Me.Height
    25. MARG.Left = -1
    26. MARG.bottom = Padding.Bottom
    27. MARG.Right = Padding.RightDwmExtendFrameIntoClientArea(Me.Handle, MARG)
    28. End IfEnd Sub
    29. Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)MyBase.OnPaintBackground(e)
    30. e.Graphics.Clear(Color.Black)
    31. Dim clientArea As New Rectangle(MARG.Left, MARG.top, Me.ClientRectangle.Width - MARG.Left - MARG.Right, Me.ClientRectangle.Height - MARG.top - MARG.bottom)Dim b As New SolidBrush(Me.BackColor)
    32. e.Graphics.FillRectangle(b, clientArea)
    33. End Sub
    34. #End Region

    den Aerorahmen über die ganze Arbeitsfläche "gestreckt". Das funktioniert auch wunderbar, wenn ich jedoch zB. einen Button auf die Form platziere, heißen mich Darstellungsprobleme mit dem Text willkommen.
    das kann ich zwar mit der Eigenschaft useCompatibleTextRendering richten, jedoch gehen die Darstellungsfehler vom Buttonhintergrund nicht weg, das kann ich jedoch richten indem ich die FlatStyle Eigenschaft vom Button auf System setze. Jedoch tauchen dann wieder die Textprobleme auf! Das Problem besteht bei fast jedem Control: dem Label: fehlerhafter Text und schwarzer hintergrund, dem Picturebox: keinen Transparenten hintergrund usw.
    hat jemand nen Vorschlag wie man das beheben könnte oder einen anderen Code um den Aerohintergrund zu erstellen?
    danke im voraus!
    gruß

    EDIT:

    Hier mal ein Bild von der ganzen Geschichte:

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RoberDeSable“ ()