Je veux faire une partie d'une forme semi-transparente, avec un texte supplémentaire sur cette partie qui n'est pas transparente. P>
Comment puis-je accomplir cela en C #? P>
4 Réponses :
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. P>
Vous voudrez peut-être utiliser la base Windows Presentation (WPF) à la place, lorsque de tels effets sont presque triviaux à mettre en œuvre. P>
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 i> légèrement hacky et wpf est i> mieux pour ce genre de chose (bien que ce soit moins amusant lorsque les ingénieurs de la SP font tout pour vous).
simple:
@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
Je ne pense pas que vous puissiez appliquer la transparence (plus correctement appelé, opacité em>) pour seulement une partie d'une forme plutôt que la forme complète et complète. P>
Vous pouvez toutefois créer une forme de forme personnalisée (c'est-à-dire non rectangulaire) assez facilement, avec différentes parties de cette forme en cours de transparence. En fonction du "look" exact que vous essayez d'atteindre, cela peut être le plus proche que vous obtiendrez. P>
Vérifiez ces liens pour créer votre propre formulaire en forme personnalisée: p>
Création de formulaires de fenêtres de forme personnalisés dans .NET La seule autre alternative peut être d'afficher deux formulaires, dont l'une est définie pour être partiellement transparente. Vous devez vous assurer de manière programmatique que le deuxième formulaire est positionné immédiatement à côté du formulaire "principal" et est déplacé / redimensionné proportionnellement lorsque l'utilisateur déplace / redimensionne le formulaire "principal". Bien qu'il s'agisse de deux formes, il pourrait être apporté à regarder, à l'utilisateur, que ce n'est en fait qu'un seul formulaire, bien que cela puisse être assez difficile à tirer et ne serait pas une solution parfaite (mais peut être «assez bon» en fonction de sur vos besoins exacts). P>
forme de forme personnalisée avec une descente en C #
Formulaires Windows et contrôles en forme de Visual Studio .NET A > p>
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é Suivant, placez ce code dans l'événement de charge de votre formulaire principal: p> 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>
_floater.Location = panel1.PointToScreen(new Point(0, 0));