Question

J'ai essayé le code Visual C # Kicks pour un formulaire alpha-fusionné . Cela fonctionne (dès que je supprime la propriété TransparencyKey ); Autrement dit, je peux utiliser la image de test alpha PNG du W3C et voir les autres fenêtres. dessous, mais rend tous les contrôles du formulaire invisibles. Vraisemblablement, ils ne sont tout simplement pas peints, car OnPaint est remplacé. J'ai essayé d'appeler OnPaint :

de la superclasse
Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
    UpdateFormDisplay()

    MyBase.OnPaint(e)
End Sub

, mais cela n'a rien changé. (Appeler MyBase.OnPaint en premier ne fait aucune différence non plus.)

Malheureusement, la plupart des articles sur les formulaires alpha-blended se concentrent sur les écrans de démarrage purs, sans contrôle - mais nous avons besoin d'un panneau affichant d'abord les champs de connexion, puis une barre de progression.

Les contrôles, d’ailleurs, n’ont pas besoin de transparence; ce n'est que sur les bords extérieurs que la transparence de la PNG compte vraiment. Donc, simuler cela en ajoutant un autre formulaire en plus de tout cela (les deux bougeant toujours en tandem) peut suffire, mais je préférerais une solution plus douce.

Était-ce utile?

La solution

Étrange, de toute façon, cet article couvre une forme transformée en alpha avec des contrôles:

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

Autres conseils

Essayez de placer ceci dans votre formulaire après InitializeComponents ();

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top