leicht transparente Hintergrundfarbe für Form

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Sederic Enders.

    leicht transparente Hintergrundfarbe für Form

    Hi, gibt zwar schon 100 Fragen zu transparenz, hab aber nix gefunden

    Ist es möglich, bei einer Windows-Forms-Anwendung bei einer Form nur die Hintergrundfarbe nicht ganz deckend, sondern (leicht) transparent zu machen? Ein bisschen sieht man es, wenn man das Bild im Anhang stark vergrößert, dass nur der Hintergrund der Windows 8 Musik Meldung Dings da leicht durchlässig ist, nicht aber die anderen Controls darauf

    Meine Überlegungen bis jetzt:
    Spoiler anzeigen
    1. mit Opacity: PROBLEM: auch die Controls auf der Form werden transparent
    2. mit TransparencyKey: PROBLEM: Manche Stellen werden komplett transparent
    3. mit:

      VB.NET-Quellcode

      1. Me.SetStyle(Windows.Forms.ControlStyles.SupportsTransparentBackColor, True) : Me.BackColor = Drawing.Color.FromArgb(224, 0, 0, 0)
      PROBLEM: läuft iwie net. Wenn ich dann den Alphakanal der BackColor auf 0 setz, wird die Form weiß statt transparent... :?:
    Bilder
    • leichte transparenz.png

      132,41 kB, 690×286, 154 mal angesehen
    Ganz einfach: geht nicht (zumindest nicht ohne sehr sehr vielen und komplizierten Code, den ich selbst nicht mal kenne). Wenn du solche Spielereien unbedingt brauchst, dann nimm WPF, da ist das eine Sache von ner Minute (oder weniger, wenn man besser darin ist, als ich).
    Jap so funktionierts:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim WithEvents frm As New Form
    3. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    4. Me.BackColor = Color.Purple
    5. Me.TransparencyKey = Color.Purple
    6. frm.FormBorderStyle = Windows.Forms.FormBorderStyle.None
    7. frm.Opacity = 0.4
    8. frm.BackColor = Color.Gray
    9. frm.Size = Me.Size
    10. frm.ShowInTaskbar = False
    11. frm.Show()
    12. frm.Location = Me.Location
    13. Me.Focus()
    14. AddHandler frm.MouseClick, AddressOf Frm_MouseClick
    15. End Sub
    16. Private Sub Frm_MouseClick(sender As Object, e As MouseEventArgs) Handles frm.MouseClick
    17. Me.Focus()
    18. End Sub
    19. Private Sub Form1_LocationChanged(sender As Object, e As EventArgs) Handles Me.LocationChanged
    20. frm.Location = Me.Location
    21. End Sub
    22. End Class


    EDIT: Habs jetzt noch ein wenig verbessert

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „xd-franky-5“ ()