Dégradé de deux couleurs avec transparence et angle

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 237 fois - Téléchargée 20 fois

Contenu du snippet

je sais qu'il y a pas mal de codes qui traite se sujet , j'espère que celui la est différant et plus utile.

Source / Exemple :


Imports System.Drawing.Drawing2D

Public Class Form1

    Public Sub DrawGradient(ByVal C As Control, ByVal rect As Rectangle, ByVal Color1 As Color, ByVal Color2 As Color, _
                     ByVal color1Opacity As Integer, ByVal color2Opacity As Integer, ByVal ang As Integer, _
                     ByVal isMonochrome As Boolean)

        Dim gr As Graphics = C.CreateGraphics
        Dim Brosse As LinearGradientBrush
        Color1 = Color.FromArgb(color1Opacity, Color1.R, Color1.G, Color1.B)

        If isMonochrome = True Then
            Color2 = Color.Transparent
        Else
            Color2 = Color.FromArgb(color2Opacity, Color2.R, Color2.G, Color2.B)
        End If

        Brosse = New LinearGradientBrush(rect, Color1, Color2, ang, True)

        gr.FillRectangle(Brosse, rect)

        gr.Dispose()
        Brosse.Dispose()
    End Sub

   'Exemple d'application:

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        DrawGradient(Me, New Rectangle(0, 0, Me.Width, Me.Height), _
                     Color.Black, Color.Blue, 255, 160, 45, False)
    End Sub
End Class

A voir également

Ajouter un commentaire Commentaires
Messages postés
8
Date d'inscription
samedi 29 mai 2010
Statut
Membre
Dernière intervention
30 août 2010

Trop Trop beau j'adors merci
Messages postés
4
Date d'inscription
vendredi 13 août 2004
Statut
Membre
Dernière intervention
15 février 2011

Salut, trés sympa ce code , court / efficace facile à metre en oeuvre.
bon travail bravo !
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
Salut, encore un snippet ! enfin que dis-je une simple fonction :

Brosse = New LinearGradientBrush(rect, Color1, Color2, ang, True)

ta fonction en initié, surrement pas c'est la base.
Tu n'as pas besoin de placer ismonochrome dans ta sub, il suffit de placer l'opacité à 0 de la seconde couleur ^_^
Note aussi qu'a chaque clic sur le bouton tu vas surcharger ta form perdant l'opacité à therme ;)

Bien vu le fait de placer un control dans ta form mais cela ne marche pas bien !
En effet les couleurs disparraissent dés que l'on sort du control, regarde essaye cela :

DrawGradient(Button1, New Rectangle(0, 0, Button1.Width, Button1.Height), _
Color.Red, Color.Blue, 255, 100, 45, False)

ou simplement ton appel de coloration de Me dans le form load, ce qui est l'endroit pour initialiser les couleurs d'une form non ?

Donc revois ton code et pense à poster des sources, plutôt qu'une simple Sub (ou alors sur codyx)

Bonne continuation. @dn (je ne note pas mais tu imagine ma note)

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.