[LÖSUNG]WinForms Transparent gestalten

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Pascal.

    [LÖSUNG]WinForms Transparent gestalten

    Guten Mittag Ladys and Gentlemans ;)

    Ist lang her das ich hier aktiv war aber manchmal findet man schon zurück. :thumbsup:

    Ich hab ein kleines Projekt vor und brauch dazu zwei Dinge. Eine Transparente WinForm die auch PNGs ordentlich rendert ohne dabei meinen Schatten in der PNG Total zu vermurksen. (GDI+ hatte ich im Kopf aber das ist so steinalt das sogar Steinzeitmenschen darauf verzichten würden.) und das zweite Thema ist SQL Datenbankverbindung in VB.net. Die meisten würden jetzt laut aufschreien und sagen "Bist du total be****** das kann man doch easy going auslesen." Meine Frage ist - kann man das irgendwie blocken.

    Für die Form hab ich einiges probiert:
    TransparencyKey = Bescheidenes Ergebnis
    UI Librarys und SDKs = Hab keine Wirklichen gefunden die die Form um sowas erweitern würden.
    GDI+ = Funktioniert irgendwie ist aber mehr DirtyCode als Funktional.


    Ideen zum DB Daten verstecken hatte ich bereits:
    Ein Webserver der die anfragen händelt (ist mir dafür aber zu viel aufwand.)
    Obfuscator (Avira und weitere BIlligprogramme schreien da aber sofort "VIRUS")

    Daher bin ich offen für neue Ideen und hoff einer von euch kann mir sein Wissen teilen. Wichtig wäre mir als ersteres das die Form ordentlich Transparent wird und ich jedes Bild ordentlich rendern kann. (Für besser gestaltete Formen)


    Grüße
    Pac ^^
    "Es gibt guten und schlechten Code und es gibt Code der einfach nur Funktionieren soll." - P. White


    www.pacrafts.de
    Update und Lösung:

    Hab lange Gesucht und endlich ne Lösung gefunden. Man braucht dazu simpel diese AlphaTransformer DDL. Diese zieht man beim Projekt einfach in die Toolbox und bekommt 2 neue Controls.
    • AlphaFormTransformer
    • AlphaFormMarker

    Die Restliche Lösung entnehmt Ihr hier.

    Kurzgefasst in Stichpunkten
    • Gestaltet ein Background mit eurer Tollen Form -> Schneidet den Innenbereich wo später Controls liegen aus so das dieser Transparent ist.
    • Erstellt eine Form mit Property FormBorderStyle = None
    • Zieht den AlphaFormTransformer auf die leere Form (AFT) und stellt die Dock Eigenschaft auf Fill
    • Setzt dem AFT euer BackgroundImage und stellt die Größe von der Form, dem AFT auf die Größe des Hintergrundbildes (das ist wichtig!)
    • Zieht einen AlphaFormMarker in die Transparente Stelle des Bildes für die Controls
      • Das ist wichtig damit der FormDesigner peilt das ihr genau dort Controls anzeigen lassen wollt.
      • Ihr könnt die Ausgeschnittene Stelle mit einer PictureBox wieder normal füllen :)




    Ende :)


    Grüße
    Pac
    Dateien
    "Es gibt guten und schlechten Code und es gibt Code der einfach nur Funktionieren soll." - P. White


    www.pacrafts.de

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Pascal“ ()