Es werden Kontrollen auf einem Alpha-gemischt Form
-
02-07-2019 - |
Frage
Ich habe versucht, den Visual C # Kicks Code für eine alpha-blended Form . Dies funktioniert (sobald ich die TransparencyKey
Eigenschaft entfernen); das heißt, kann ich die PNG Alpha-Testbild und sehen andere Fenster darunter, macht aber auf dem Formular unsichtbar alle Bedienelemente. Vermutlich sind sie einfach nicht gemalt, als OnPaint
außer Kraft gesetzt wird. Ich versuchte, die Superklasse OnPaint
Aufruf:
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
UpdateFormDisplay()
MyBase.OnPaint(e)
End Sub
, aber das hat nichts ändern. (Calling MyBase.OnPaint
zuerst macht keinen Unterschied entweder machen.)
die meisten Artikel über alpha-blended Formen konzentrieren sich auf reine Splash-Screens ohne Kontrolle auf sie leider -. Aber wir brauchen eine Platte, die erste zeigt Zeichen in Feldern, dann wird ein Fortschrittsbalken
Die Kontrollen, die übrigens nicht brauchen Transparenz; es ist nur an den Außenkanten, die die Transparenz der PNG wirklich ankommt. Also das Fälschen von allen eine andere Form auf dieses Hinzufügen (mit den beiden immer im Tandem bewegen) könnte ausreichen, aber ich würde eine glattere Lösung bevorzugen.
Lösung
Seltsam, sowieso, erstreckt sich dieser Artikel eine Alpha-transformierter Form mit Kontrollen:
Andere Tipps
Versuchen Sie dies in Ihrem CTOR setzt nach InitializeComponents ();
base.SetStyle (ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);