Rendre un contrôle transparent dans .NET 3.5
Problème :
Lors du développement d'une image éditeur dans Winforms utilisant .NET 3.5, une zone de sélection rectangulaire doit être transparente. Définir les propriétés BackColor et ForeColor sur Transparent n'a aucun effet.
Solution :
Bien que la transparence soit prise en charge dans .NET 3.5, certains contrôles et conditions peuvent ne pas le permettre . Pour résoudre ce problème, un contrôle transparent personnalisé peut être créé.
Contrôle transparent personnalisé :
L'extrait de code suivant illustre un contrôle personnalisé qui permet la transparence :
public class TranspCtrl : Control { public int Opacity { get; set; } protected override void OnPaint(PaintEventArgs e) { // Calculate opacity and set brush color int alpha = (Opacity * 255) / 100; using (Brush bckColor = new SolidBrush(Color.FromArgb(alpha, this.BackColor))) { // Draw background rectangle e.Graphics.FillRectangle(bckColor, new Rectangle(0, 0, this.Width - 1, this.Height - 1)); } } }
Utilisation :
Créez une instance du contrôle personnalisé et définissez sa propriété Opacity pour obtenir la transparence souhaitée.
TranspCtrl transparentControl = new TranspCtrl(); transparentControl.Opacity = 50;
Points clés :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!