Dégradé de deux couleurs avec transparence et angle

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 433 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
cs_martinha Messages postés 8 Date d'inscription samedi 29 mai 2010 Statut Membre Dernière intervention 30 août 2010
30 août 2010 à 05:57
Trop Trop beau j'adors merci
cs_novice69 Messages postés 4 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 15 février 2011
29 juil. 2010 à 15:11
Salut, trés sympa ce code , court / efficace facile à metre en oeuvre.
bon travail bravo !
Adn56 Messages postés 1172 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 28 septembre 2013 1
6 juin 2010 à 19:18
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.