Dégrader couleur

Résolu
scottmat Messages postés 438 Date d'inscription samedi 24 mai 2003 Statut Membre Dernière intervention 23 janvier 2011 - 11 sept. 2005 à 17:11
 Utilisateur anonyme - 15 sept. 2005 à 18:53
Bonjours à tous


J’arrive a faire un dégrader sur un Form à l’aide du code suivant :


Dim g As Graphics = CreateGraphics()


Dim oB As New Drawing2D.LinearGradientBrush(DisplayRectangle, Color.Blue, Color.BlueViolet, Drawing2D.LinearGradientMode.Horizontal)


g.FillRectangle(oB, DisplayRectangle)


(inserez dans l’évènement paint de Form


et je souhaiterez faire la même chose, mais sur un panel et MainMenu mais cela ne fonctionne pas

Merci par avance

8 réponses

Utilisateur anonyme
11 sept. 2005 à 18:03
Bonjour,



Pour une panel, comme pour un form



Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint

Dim oB As New Drawing2D.LinearGradientBrush(DisplayRectangle,
Color.Blue, Color.BlueViolet, Drawing2D.LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(oB, DisplayRectangle)

End Sub



Pour un menu utilise la propriété overdraw (voir ici)


ChRB
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
3
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
14 sept. 2005 à 17:17
est-ce que quelqu'un aurait l'occasion d'expliquer ça point par point parce que ça marche pas chez moi (juste sur le form)
merci bien
0
Utilisateur anonyme
14 sept. 2005 à 18:14
C bien simple.





'// Importation pour faire les dégrader

Imports System.Drawing.Drawing2D



'// Dans l'événement paint du contrôle ou faire le dégrader (ici Form1)

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Mybase.Paint



'// On va maintenant crée le dégrader (du bleu vers le violet horizontale et taille de la form)

Dim oB As New System.Drawing.Drawing2D.LinearGradientBrush(Me.ClientRectangle,
Color.Blue, Color.BlueViolet, Drawing2D.LinearGradientMode.Horizontal)



'// On trace maintenant le dégrader (en utilisant le dégrader précédemment crée et toujours la taille de la form)

'// On utilise e.Graphics comme graphique (celui de la form), donc pas la peine de le crée ([auteurdetail.aspx?ID=108048 scottmat] l'a crée, et c'est ce qui causait son erreur)

e.Graphics.FillRectangle(oB, Me.ClientRectangle)


End Sub


Voilà, tu as maintenant un dégrader sur ton formulaire.


ChRB
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
15 sept. 2005 à 10:28
merci à toi,
je me suis rendu compte qu'il y avait beaucoup de source sur le sujet, mais celle-ci est certainement la plus simple.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
15 sept. 2005 à 10:34
ceci dit, désolé d'être un boulet mais j'ai toujours deux lignes en rouge
0
Utilisateur anonyme
15 sept. 2005 à 12:49
Quelles sont ces deux lignes ?


ChRB
<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0
cs_lacomm Messages postés 298 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 5 juillet 2013 1
15 sept. 2005 à 17:33
Dim oB As New System.Drawing.Drawing2D.LinearGradientBrush(Me.ClientRectangle, Color.Blue, Color.BlueViolet, Drawing2D.LinearGradientMode.Horizontal)

e.Graphics.FillRectangle(oB, Me.ClientRectangle)

je dois peut-être ajouter une référence/composante ?
je précise que je suis en VB6

ceci dit, j'ai trouvé ceci dans les sources qui a l'air de marcher


'Private Sub Form_Paint()


'Dim lngY As Long


'Dim lngScaleHeight As Long


'Dim lngScaleWidth As Long





'ScaleMode = vbPixels


'lngScaleHeight = ScaleHeight


'lngScaleWidth = ScaleWidth


'DrawStyle = vbInvisible


'FillStyle = vbFSSolid


'For lngY = 0 To lngScaleHeight


'FillColor = RGB(0, 0, 255 - (lngY * 255) \ lngScaleHeight)


'Line (-1, lngY - 1)-(lngScaleWidth, lngY + 1), , B ' Bleu


'Next lngY


'End Sub
0
Utilisateur anonyme
15 sept. 2005 à 18:53
Et ben ... C'est évident cela ne marche qu'en vb.net (ici je parle de ma solution) ; donc vb6 c'est sûr que ça ne marchera pas. Mais en effet je n'avais pas précisé que c'en était (du .net).

Ceci dit, si l'exemple que tu as trouvé marche, alors c'est parfait.



ChRB

<hr size="2" width="100%">
Merci de cliquer sur "Réponse acceptée" si une réponse vous convient.
0