7
votes

Comment puis-je faire une partie de la forme partiellement transparente dans C #?

Je veux faire une partie d'une forme semi-transparente, avec un texte supplémentaire sur cette partie qui n'est pas transparente.

Comment puis-je accomplir cela en C #?


0 commentaires

4 Réponses :


0
votes

Je ne sais pas si cela est même possible avec des winforms sans utilisation excesse des appels p / invoqués et des contours de contournement.

Vous voudrez peut-être utiliser la base Windows Presentation (WPF) à la place, lorsque de tels effets sont presque triviaux à mettre en œuvre.


2 commentaires

Pourquoi -1? Qu'est-ce qui n'allait pas avec ma réponse? Dans WinForms, vous ne pouvez définir la transparence que sur le formulaire complet mais pas sur les pièces, donc je doute que cela puisse être fait facilement.


+1 pour contrer le bowvote. Ce n'est pas si difficile de le faire dans Winforms, mais c'est est légèrement hacky et wpf est mieux pour ce genre de chose (bien que ce soit moins amusant lorsque les ingénieurs de la SP font tout pour vous).



0
votes

simple: xxx


2 commentaires

@Fbsc - Cela changera l'opacité du formulaire complet. On dirait que l'asker de la question originale ne veut que changer l'opacité d'une partie du formulaire, et non le formulaire entier.


Désolé, j'ai sauté cette "partie": s




5
votes

Vous pouvez le faire en créant une fenêtre entièrement transparente sous votre forme, puis flottant d'une forme semi-transparente sur la fenêtre entièrement transparente.

Premièrement, définissez la transparenceKey de votre formulaire principal à color.red, puis placez un panneau nommé Panel1 code> sur le formulaire et définissez son backcolor sur rouge. Cela créera la "fenêtre" entièrement transparente. Créez une référence de formulaire de niveau de formulaire comme ceci: p> xxx pré>

Suivant, placez ce code dans l'événement de charge de votre formulaire principal: p>

_floater.Location = panel1.PointToScreen(new Point(0, 0));


0 commentaires