Voici comment realiser un progressbar Startrek .
Vous pouvez changer la couleur des lines et drawborder.
Ma classe :
Public Class ProgressbarStarTrek : Inherits ProgressBar
Private _MyColor As Color = Color.Black
Public Property MyColor As Color
Get
Return _MyColor
End Get
Set(value As Color)
If value = Color.Transparent Then
Return
Else
_MyColor = value
Me.Invalidate()
End If
End Set
End Property
Private _MyFont As Font
Public Property MyFont As Font
Get
Return _MyFont
End Get
Set(value As Font)
_MyFont = value
Me.Invalidate()
End Set
End Property
Private _ColorRectangle As Color = Color.White
Public Property ColorDrawBorder As Color
Get
Return _ColorRectangle
End Get
Set(value As Color)
If value = Color.Transparent Then
Return
Else
_ColorRectangle = value
Me.Invalidate()
End If
End Set
End Property
Private _ColorLine As Color = Color.Blue
Public Property ColorLine As Color
Get
Return _ColorLine
End Get
Set(value As Color)
If value = Color.Transparent Then
Return
Else
_ColorLine = value
Me.Invalidate()
End If
End Set
End Property
Private StarTrek As String = "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"
Private _Vaisseau As Image = Nothing
Private rect As New Rectangle
Private Moving As Boolean = False
Public Sub New()
Me.SetStyle(ControlStyles.OptimizedDoubleBuffer Or ControlStyles.UserPaint, True)
Me._Vaisseau = CodeToImage(StarTrek, 40, 30)
Me.Size = New Size(350, 35)
Me._MyFont = New Font("Times New Roman", 10, FontStyle.Bold)
End Sub
Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
MyBase.OnPaint(e)
rect = New Rectangle(0, 0, Me.Width, Me.Height)
DrawRectangle(e.Graphics, _ColorRectangle, rect.X + 1, rect.Y + 1, rect.Width - 3, rect.Height - 3, 10)
Dim progressWidht As Integer = CInt(((rect.Width - 42) / (Maximum - Minimum)) * Value)
If _Vaisseau Is Nothing Then Return
e.Graphics.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
e.Graphics.DrawImage(_Vaisseau, progressWidht - CInt(_Vaisseau.Width - 40), rect.Height - _Vaisseau.Height - 3)
If Value < 2 Then Return
e.Graphics.DrawLine(New Pen(New SolidBrush(_ColorLine), 3), CInt(rect.X + 3), rect.Y + CInt(rect.Height - 8), progressWidht, CInt(rect.Height - 8))
e.Graphics.DrawLine(New Pen(New SolidBrush(_ColorLine), 3), CInt(rect.X + 3), rect.Y + CInt(rect.Height - 28), progressWidht, CInt(rect.Height - 28))
If Value < 8 Then Return
e.Graphics.DrawString(Value & " %", _MyFont, New SolidBrush(_MyColor), New Rectangle(CInt(rect.X - 30) + progressWidht, rect.Y, rect.Width, rect.Height), New StringFormat With {.LineAlignment = StringAlignment.Center})
End Sub
Private Function CodeToImage(code As String, width As Integer, Height As Integer) As Image
Dim _image As Image = Image.FromStream(New System.IO.MemoryStream(Convert.FromBase64String(code)))
Return New Bitmap(_image, New Size(width, Height))
End Function
Public Sub DrawRectangle(ByVal g As Graphics, ByVal _Colors As Color, ByVal x As Int32, ByVal y As Int32, ByVal width As Int32, ByVal height As Int32, ByVal radius As Int32)
Dim area As Rectangle = New Rectangle(x, y, width, height)
Dim path As Drawing2D.GraphicsPath = New Drawing2D.GraphicsPath
path.AddArc(area.Left, area.Top, radius * 2, radius * 2, 180, 90)
path.AddArc(area.Right - (radius * 2), area.Top, radius * 2, radius * 2, 270, 90)
path.AddArc(area.Right - (radius * 2), area.Bottom - (radius * 2), radius * 2, radius * 2, 0, 90)
path.AddArc(area.Left, area.Bottom - (radius * 2), radius * 2, radius * 2, 90, 90)
path.CloseAllFigures()
g.DrawPath(New Pen(_Colors, 3), path)
End Sub
Protected Overrides Sub OnResize(ByVal e As EventArgs)
MyBase.OnResize(e)
If Me.Height <> 35 Then
Me.Height = 35
ElseIf Me.Width < 150 Then
Me.Width = 150
ElseIf Me.Width > 500 Then
Me.Width = 500
End If
End Sub
Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
MyBase.OnMouseDown(e)
If rect.Contains(e.Location) OrElse e.Button = Windows.Forms.MouseButtons.Left Then
Moving = True
End If
End Sub
Protected Overrides Sub OnMouseup(ByVal e As System.Windows.Forms.MouseEventArgs)
MyBase.OnMouseUp(e)
Moving = False
End Sub
Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
If Moving AndAlso e.X > -1 AndAlso e.X < CInt(rect.Width + 2) Then
Value = CInt((Maximum - Minimum) * (e.X / rect.Width))
End If
MyBase.OnMouseMove(e)
End Sub
Protected Overrides Sub OnMouseEnter(e As System.EventArgs)
MyBase.OnMouseEnter(e)
If Cursor.Equals(Cursors.Arrow) Then
Me.Cursor = Cursors.Hand
End If
End Sub
Protected Overrides Sub OnMouseLeave(e As System.EventArgs)
MyBase.OnMouseLeave(e)
If Cursor.Equals(Cursors.Hand) Then
Me.Cursor = Cursors.Arrow
End If
End Sub
End Class
Aucun commentaire:
Enregistrer un commentaire