Dotnetbase Fullglas Window

  • Allgemein

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von VanDerLars.

    Dotnetbase Fullglas Window

    Wie bekomme ich mit der dotnetbase ein Fullglas Window? Habe gehört es gibt da eine Eigenschaft aber finde sie leider nicht. Weis vielleicht einer wo oder wie man das machen kann oder wie man z.B. nur einen unteren Teil der Form durchsichtig macht wie in der demo?
    Dazu musst du erstmal die GlassForm erben.
    Alle Controls die schwarz sind passen sich dem Glass an.

    VB.NET-Quellcode

    1. Public Class Form1 : inherits dotnetbase.forms.Glassform
    2. End Class

    oder ähnlich. (Habe grade leider keine IDE zu Hand)

    LG.L

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Lawliet“ ()

    Das scheint aber immer noch falsch zu sein, weil wenn ich das so eingebe:

    VB.NET-Quellcode

    1. Public Class Form1 : Inherits Dotnetbase.Windows.Forms.Aero.glassForm

    Ist es Falsch und wenn ich nur bis:

    VB.NET-Quellcode

    1. Public Class Form1 : Inherits Dotnetbase.

    schreibe wird mir nur "Inherits.Dotenetbase.Form1" in der Autovervollständigung angezeigt.


    Wenn die Form geerbt wurde (hatte ich vergessen zu erwähnen) ist in den Form Eigenschaften noch der Wert drawfullglasswindow = true zu setzen.

    Demo Projekt Mappe als Anhang
    LG.L
    Dateien
    Das machst du indem du jede Hintergrund Farbe auf schwarz setzt.
    Hast du z.b eine Picturebox die ein transperentes Bild enthält setzt du backgroundcolor der picturebox auf schwarz.
    bei Labels und anderen Controls ebenfalls.



    Habe ebenfalls nochmal eine aktualisierte Demo Projekt Mappe an gehangen.
    LG.L
    Dateien
    OK erstmal vielen dank für die Beispielprojekte :D Jetzt hab ich nur noch 1 kleine klitzekleine frage :( Ich frag mich nähmlich die ganze zeit was der Weise Kasten ist? Dieser wird nähmlich nicht im Eigenschaftsfenster angezeigt.
    Sieh Dir einfach die Form1.Designer.vb an:

    VB.NET-Quellcode

    1. Me.glassMargin = New System.Windows.Forms.Padding(60, 60, 60, 90)

    Das taucht als Member von Form1 auf.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo hier ein fertiger Code, den du nur in deine Form packen musst:
    das macht deine Form Aero!
    Du musst nur Formborderstyle = none stellen!

    VB.NET-Quellcode

    1. Public Structure MARGINS
    2. Public V_links_Breite As Integer
    3. Public V_rechts_breite As Integer
    4. Public V_Oben_Höhe As Integer
    5. Public V_Unten_Höhe As Integer
    6. End Structure
    7. Public Class Form1
    8. Public Declare Function DwmExtendFrameIntoClientArea Lib "dwmapi.dll" (ByVal hWnd As IntPtr, ByRef pMarinset As MARGINS) As Integer
    9. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    10. Try
    11. Me.TransparencyKey = Color.PowderBlue
    12. Me.BackColor = Color.PowderBlue
    13. Dim margins As MARGINS = New MARGINS
    14. margins.V_links_Breite = -1
    15. margins.V_rechts_breite = -1
    16. margins.V_Oben_Höhe = -1
    17. margins.V_Unten_Höhe = -1
    18. Dim result As Integer = DwmExtendFrameIntoClientArea(Me.Handle, margins)
    19. Catch ex As Exception
    20. End Try
    21. End Sub
    22. Dim lStartPos As Point
    23. Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown
    24. If e.Button = Windows.Forms.MouseButtons.Left Then
    25. lStartPos = e.Location
    26. End If
    27. End Sub
    28. Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
    29. If e.Button = Windows.Forms.MouseButtons.Left Then
    30. Dim lDelta As New Point(e.Location.X - lStartPos.X, e.Location.Y - lStartPos.Y)
    31. Dim lNewPos = New Point(Me.Location.X + lDelta.X, Me.Location.Y + lDelta.Y)
    32. Me.Location = lNewPos
    33. End If
    34. End Sub



    Der Code stammt zum Großteil von Samus Aran!
    Hoff er hilft dir!

    EDIT:
    oh war schon gelöst :(