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.

War es hilfreich?

Lösung

Seltsam, sowieso, erstreckt sich dieser Artikel eine Alpha-transformierter Form mit Kontrollen:

http://www.codeproject.com/KB/miscctrl/AlphaForm.aspx

Andere Tipps

Versuchen Sie dies in Ihrem CTOR setzt nach InitializeComponents ();

base.SetStyle (ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top