Transparence partielle et bords irréguliers en .net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 790 fois - Téléchargée 37 fois

Contenu du snippet

Pour rendre un form irrégulier (par ex.), on lui applique une image d'arrière-plan où une couleur prédéfinie deviendra transparente grace à la méthode MakeTransparent.

Je ne met pas de zip (pas pour ces quelques lignes), je vous laisse donc faire un copier-coller si vous souhaitez tester ce code.

Pour la capture d'écran, je rencontre le probleme suivant: "Le fichier envoyé n'est pas au format JPG
Veuillez réessayer" (alors que bien entendu j'essais d'envoyer un fichier JPEG)

Evitez les commentaires qui ne sont pas "constructifs" merci.

Source / Exemple :


Dim bmpFont As New Bitmap("C:\background.bmp")

Private Sub form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

  Me.FormBorderStyle = FormBorderStyle.None

  Dim g As New System.Drawing.Bitmap(bmpFont) 'on charge un image
       
        g.MakeTransparent(System.Drawing.Color.Red) 'ici la couleur de l'image a rendre transparente est le rouge
        Me.BackgroundImage = g 'on dessine l'image partiellement transparante sur le form

end sub

Conclusion :


'REMARQUE: Lorsque j'execute ce code, le rouge ne devient pas transparent mais 'noir. Alors j'ai du rajouter dans les propriétés du form :

TransparencyKey = Color.Black 'comme le code peint du noir on declare que 'la couleur a rendre transparente sur le form est le noir .

'Je ne sais pas si c'est un bug, mais mis à part ça le code fonctionne plutot bien, alors j'espere que ce source vous sera profitable.

A voir également

Ajouter un commentaire

Commentaires

Messages postés
41
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 décembre 2004

merci pour ton aide...
J'ai trouvé un truc plus simple:
créé une image dont le pixel(0, 0) est la couleur transparente (cette couleur rendra tout le formuleur transparent)

Me.PictureBox1.Top = 0
Me.PictureBox1.Left = 0

Me.Width = Me.PictureBox1.Width
Me.Height = Me.PictureBox1.Height

Dim tmp As System.Drawing.Bitmap
tmp = Me.PictureBox1.Image
Me.BackColor = tmp.GetPixel(0, 0)
Me.TransparencyKey = Me.BackColor
Me.FormBorderStyle = FormBorderStyle.None
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009

euh c'est normal que tu ais ce msg d'erreur : lis ta source , la premiere ligne : tu verras que tu initialise une bitmap et ton fichier a pour extension bmp...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.