Hallo,
also ich hab folgendes problem:
ich hab mit
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:
also ich hab folgendes problem:
ich hab mit
VB.NET-Quellcode
- #Region "Aero"Public Structure MARGINS
- Dim Left As Integer
- Dim Right As Integer
- Dim top As Integer
- Dim bottom As Integer
- End StructurePublic Structure DWM_BLURBEHIND
- Dim dwFlags As UInteger
- Dim fEnable As BooleanDim hRegionBlur As IntPtr
- Dim fTransitionOnMaximized As BooleanConst DWM_BB_ENABLE As UInteger = &H1
- Const DWM_BB_BLURREGION As UInteger = &H2Const DWM_BB_TRANSITIONONMAXIMIZED As UInteger = &H4
- End Structure
- Public isVista As Boolean = FalsePublic MARG As New MARGINS()
- Public opsys As System.OperatingSystem = System.Environment.OSVersionPublic Declare Sub DwmExtendFrameIntoClientArea Lib "dwmapi.dll" (ByVal hwnd As IntPtr, ByRef margins As MARGINS)
- 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)
- If opsys.Version.Major >= 6 Then
- isVista = True
- End IfMyBase.OnLoad(e)
- SetGlassRegion()
- End SubOverloads Shared Sub Main(ByVal args() As String)
- On Error Resume Next
- Application.EnableVisualStyles()Application.SetCompatibleTextRenderingDefault(False)
- Application.Run(New frmMain())
- End SubPrivate Sub SetGlassRegion()
- If isVista = True ThenMARG.top = Me.Height
- MARG.Left = -1
- MARG.bottom = Padding.Bottom
- MARG.Right = Padding.RightDwmExtendFrameIntoClientArea(Me.Handle, MARG)
- End IfEnd Sub
- Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)MyBase.OnPaintBackground(e)
- e.Graphics.Clear(Color.Black)
- 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)
- e.Graphics.FillRectangle(b, clientArea)
- End Sub
- #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“ ()