Faire un contrôle transparent
Je suis actuellement à l'élaboration d'un simple outil de modification des images à l'aide de Winforms et .NET 3.5
(environnement de travail).
J'ai une exigence que lorsque l'utilisateur clique sur l'outil sélectionner le bouton, un carré (rectangle en C#) apparaît qu'ils peuvent évoluer entre 100x100
et 400x400
. J'ai ce bit fixe le problème vient de rendre l'arrière-plan du rectangle transparent.
Je suis un peu dans le flou sur si la transparence est pris en charge dans .NET 3.5
, j'ai essayé le suivant:
SetStyle(ControlStyles.SupportsTransparentBackColor, true);
pnlSelectArea.BackColor = Color.Transparent;
pnlSelectArea.ForeColor = Color.Transparent;
selectArea1.BackColor = Color.Transparent;
selectArea1.ForeColor = Color.Transparent;
Mais cela n'a pas d'effet - tout conseil serait apprécié.
Cochez cette stackoverflow.com/questions/72994/...
Merci pour l'aide - je ne peux pas appliquer tout cela dans ma solution, mais j'apprécie l'effort.
Vous pouvez trouver mon approche simple expliqué dans le post ici:
Merci pour l'aide - je ne peux pas appliquer tout cela dans ma solution, mais j'apprécie l'effort.
Vous pouvez trouver mon approche simple expliqué dans le post ici:
OriginalL'auteur Adam H | 2012-02-20
Vous devez vous connecter pour publier un commentaire.
C'est mon Contrôle spécial qui contient une propriété d'opacité, il fonctionne à 100%:
la ppl, il suffit de copier et de coller dans votre classe personnalisée et modifier le constructeur de nom. fonctionne parfaitement!! merci
Actuellement, il a un sérieux problème. Dans la substitution de OnPaint, c'est l'appel de Disposer sur l'e.Objet graphique, qui ne devrait pas être fait. L'application est susceptible de se bloquer si vous disposez de l'objet Graphique qui a été passé. Si vous n'avez pas le créer, vous ne devriez pas vous en débarrasser.
Fonctionne très bien lorsque "Contrôle" a été changé pour "Panneau de configuration".
Ne fonctionne pas sur le contrôle ListView.
OriginalL'auteur Amen Ayach
Vous aurez besoin d'utiliser
Opacity
de la propriété et de mettre zéro à prendre forme invisible.Si vous voulez faire un contrôle Transparent, que vous avez essayés dans votre exemple, Voir cet article
Comment: Donnez Votre Contrôle un arrière-plan Transparent
- Il dire que le code que vous avez écrit, doit être dans le constructeur de la commande. Donc, je suppose, vous aurez besoin de créer un contrôle personnalisé dérivé de votre
pnlSelectArea
'type de la plupart des probaably un bouton. Dans ce contrôle personnalisé du constructeur, vous pouvez écrire du code pour définir son style et de la couleur.Ensuite, définir le contenu de l'Opacité.
Frère Mahepp pas de propriété d'Opacité dans les winforms juste en WPF
Il est disponible à la Forme en winforms. OP pouvez utiliser un Formulaire sans bordure pour son utilisation.
href="http://msdn.microsoft.com/en-us/library/system.windows.forms.form.opacity.aspx" >msdn.microsoft.com/en-us/library/...
OriginalL'auteur Maheep
Voici ce qui a fonctionné pour moi, parce que les autres solutions n'ont pas fonctionné.
C'est grâce à la transparence des UserControl ajouté à la liste/Contrôle TreeView Collection
Je sais qu'il dit ButtonRenderer mais il devrait fonctionner pour tous les contrôles.
Dans le contrôle UserControl:
dans le contrôle Parent:
OriginalL'auteur user3732487
génial!!
J'ai enfin réussi à dessiner transparent formes.
J'ai ajouté une méthode virtuelle
juste avant
et à la fin de la déclaration de la méthode virtuelle
Maintenant, je peux continuer à créer mon propre Transparent des formes, des graphiques, etc ...
OriginalL'auteur Agguro