[FIXED] Winforms Transparency -Problem (ich werde verrückt damit)

Ausgabe

Ich werde Ihnen ein Bild unten zeigen, aber davor …

wenn Sie Yahoo-Widgets oder Windows Media Player-Skins mit Cartoony-Motiven gesehen haben.

Ich baue eine Titelleiste ohne … Hintergrund ohne … Anwendung … es sieht so aus

Alt-Text
(Quelle: deviantart.net )

Der dunklere Hintergrund, den Sie sehen, ist eigentlich mein Hintergrundbild, da dies ein Screenshot ist …

Um dies zu erreichen … die Form des Körpers und der Linien, verwende ich transparentes PNG … dann verwende ich den Transparenzschlüssel des Win-Formulars, um es transparent zu machen … und das Bild wird in eine Bildbox geladen …

Mein Problem sind die weißen Punkte, die Sie überall im Körperumriss sehen … das liegt daran, dass die Pixel dieses PNGs nicht vollständig undurchsichtig oder transparent sind, dh durchscheinend … der Transparenzschlüssel den Hintergrund des Formulars also nicht transparent macht an diesen Pixeln … und Sie sehen diese weißen Punkte …

Nun, gibt es eine andere Möglichkeit, das Formular transparent zu machen, weil …

  • Der Transparenzschlüssel verhält sich immer so, denn egal was Sie tun, es werden immer diese durchscheinenden Pixel im Bild an Kurven sein …

Lösung

Johannes hat die Hauptprobleme Ihres derzeitigen Ansatzes erwähnt.

Es ist möglich, Formular-Alpha-Blending in Windows Forms durchzuführen, aber Sie müssen (unter anderem) den Windows-API-Aufruf verwenden: UpdateLayeredWindow .

Visual C# Kicks hat ein hilfreiches Tutorial und Quellcode, wie man das macht, um einen professionell aussehenden Begrüßungsbildschirm zu erstellen.

Der einzige Nachteil ist, dass, wenn Ihr Formular untergeordnete Steuerelemente wie Schaltflächen oder Textfelder enthält, diese nicht mit UpdateLayeredWindow gezeichnet werden. Sie können jedoch weiterhin Schaltflächen usw. simulieren, indem Sie sie manuell als Teil des Formularhintergrunds zeichnen.


Beantwortet von –
Ash


Antwort geprüft von –
Timothy Miller (FixError Admin)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like