Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Threading
- Public Class PulseButton
- Inherits Button
- Private StopPulsing As Boolean = True
- Public Property PulseColor As Color = Color.Orange
- Private Sub Fade(ByVal img As Bitmap)
- 'Definir Une variable de transparency
- Dim Transparency As Integer = 10
- 'Definir une valeur d'incrementation /Decrimentation
- Dim steps As Integer = 10
- 'Créer un objet graphique
- Dim g As Graphics = Me.CreateGraphics
- Try
- 'Boocle de remplissage avec une couche de couleur transparent
- Do While Not StopPulsing
- 'Effacer l'effet precedent par traçage de l'image initial
- g.DrawImage(img, 0, 0)
- 'Ajouter une couche de couleur avec un niveau de transparence variable
- g.FillRectangle(New SolidBrush(Color.FromArgb(Transparency, PulseColor)), Me.DisplayRectangle)
- 'Voire si la valeur apres INC / DEC est dans les borne ou non
- If steps + Transparency < 0 OrElse steps + Transparency > 100 Then
- 'Si elle est hors les bornes, Changer le signe de la valeur d"INC /DEC
- steps = -steps
- End If
- 'Ajouter la valeur d'INC / DEC au niveau de transparence
- Transparency += steps
- 'Pause un peut pour laisser voir l'effet
- Thread.Sleep(60)
- Loop
- 'Apres le sort de la boucle, Effacer les effet par traçage de l'image initial
- g.DrawImage(img, 0, 0)
- Catch ex As Exception
- End Try
- End Sub
- Public Sub Pulse()
- 'Si l'etat est normal
- If StopPulsing Then
- 'Créer un thread Liée à la procedure "Fade"
- Dim PulseThread As New Thread(AddressOf Fade)
- 'Initializer la valeur de StopPulse par Faux
- StopPulsing = False
- 'Creer un objet de type Bitmap
- Dim bmp As Bitmap = New Bitmap(Me.Width, Me.Height)
- 'Garder une image du boutton en forme normale
- Me.DrawToBitmap(bmp, Me.DisplayRectangle)
- 'Lancer le thread avec le parametre
- PulseThread.Start(bmp)
- End If
- End Sub
- Public Sub StopPulse()
- StopPulsing = True
- End Sub
- Private Sub PulseButton_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.MouseEnter
- StopPulsing = True
- End Sub
- Sub New()
- MyBase.New()
- InitializeComponent()
- End Sub
- Private Sub InitializeComponent()
- Me.SuspendLayout()
- Me.ResumeLayout(False)
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement