Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports System.Drawing.Text
- Imports System.IO
- Imports System.Drawing.Drawing2D
- Imports System.ComponentModel
- Imports System.ComponentModel.Design
- Imports System.Drawing.Design
- Imports System.Windows.Forms
- Public Class AVTheme
- Inherits ContainerControl
- Private C1 As Color = Color.FromArgb(242, 242, 242)
- Private C2 As Color = Color.FromArgb(0, 166, 208)
- Private B1 As New SolidBrush(C1)
- Private B2 As New SolidBrush(C2)
- Private F As Font
- Private T As String
- Private _PageName As String = "Scan"
- Private _PageImage As Image
- Private MouseP As Point = New Point(0, 0)
- Private Cap As Boolean = False
- Private MoveHeight As Integer = 48
- Public Property PageName() As String
- Get
- Return _PageName
- End Get
- Set(v As String)
- _PageName = v : Invalidate()
- End Set
- End Property
- Public Property PageImage() As Image
- Get
- Return _PageImage
- End Get
- Set(v As Image)
- _PageImage = v
- End Set
- End Property
- Sub New()
- MyBase.New()
- Me.BackColor = C1
- DoubleBuffered = True
- Me.Dock = DockStyle.Fill
- F = New Font("Segoe UI", 13, FontStyle.Regular)
- End Sub
- Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
- MyBase.OnMouseDown(e)
- If e.Button = Windows.Forms.MouseButtons.Left And New Rectangle(0, 0, Width, MoveHeight).Contains(e.Location) Then
- Cap = True : MouseP = e.Location
- End If
- End Sub
- Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
- MyBase.OnMouseUp(e) : Cap = False
- End Sub
- Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
- MyBase.OnMouseMove(e)
- If Cap Then
- Parent.Location = MousePosition - MouseP
- End If
- End Sub
- Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
- MyBase.OnPaint(e)
- Dim G As Graphics
- G = e.Graphics
- G.SmoothingMode = SmoothingMode.None
- Dim I As Bitmap = Me.ParentForm.Icon.ToBitmap
- Dim IM As Image = I
- T = Me.ParentForm.Text
- G.FillRectangle(B2, New Rectangle(0, 48, Me.Width, 70))
- G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(203, 203, 203))), New Point(0, Me.Height - 49), New Point(Me.Width, Me.Height - 49))
- G.DrawString(T, F, Brushes.Black, Me.Width / 2 - G.MeasureString(T, F).Width / 2, 24 - G.MeasureString(T, F).Height / 2)
- G.DrawImage(IM, New Point(Me.Width / 2 - G.MeasureString(T, F).Width / 2 - IM.Width - 2, IM.Height / 2 - 7))
- If Not Me.ParentForm.FormBorderStyle = FormBorderStyle.None Then
- Me.ParentForm.FormBorderStyle = FormBorderStyle.None
- End If
- G.TextRenderingHint = TextRenderingHint.AntiAlias
- G.DrawString(_PageName, New Font("Verdana", 17, FontStyle.Regular), Brushes.White, 105, 70)
- If Not _PageImage Is Nothing Then
- G.DrawImage(_PageImage, New Point(70, 84 - _PageImage.Height / 2))
- End If
- End Sub
- End Class
- Public Class AVWindowButton : Inherits Control
- Private Hover As Color = Color.FromArgb(242, 242, 242)
- Private _SetImage As String = "Close"
- Sub New()
- Me.Size = New Size(33, 33)
- Me.DoubleBuffered = True
- SetStyle(ControlStyles.SupportsTransparentBackColor, True)
- Me.BackColor = Color.Transparent
- End Sub
- <TypeConverter(GetType(btnimProperty)), Category("Misc"), Description("Select Image from the list")>
- Public Property SetImage() As String
- Get
- Return _SetImage
- End Get
- Set(value As String)
- _SetImage = value
- End Set
- End Property
- Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
- Hover = Color.FromArgb(228, 228, 228)
- MyBase.Invalidate()
- MyBase.OnMouseEnter(e)
- End Sub
- Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
- Hover = Color.FromArgb(242, 242, 242)
- MyBase.Invalidate()
- MyBase.OnMouseEnter(e)
- End Sub
- Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
- Hover = Color.FromArgb(214, 214, 214)
- MyBase.Invalidate()
- MyBase.OnMouseUp(e)
- End Sub
- Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
- Hover = Color.FromArgb(151, 151, 151)
- MyBase.Invalidate()
- MyBase.OnMouseClick(e)
- End Sub
- Public Function RoundRect(ByVal Rectangle As Rectangle, ByVal Curve As Integer) As GraphicsPath
- Dim P As GraphicsPath = New GraphicsPath()
- Dim ArcRectangleWidth As Integer = Curve * 2
- P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
- P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
- P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
- P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
- P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
- Return P
- End Function
- Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
- MyBase.OnPaint(e)
- Dim G As Graphics
- G = e.Graphics
- G.SmoothingMode = SmoothingMode.HighQuality
- G.FillPath(New SolidBrush(Color.FromArgb(Hover.ToArgb)), RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 3))
- G.SmoothingMode = SmoothingMode.None
- If _SetImage = "Close" Then
- Using P1 As New Pen(Brushes.DimGray, 2)
- P1.StartCap = LineCap.Triangle : P1.EndCap = LineCap.Triangle
- G.DrawLine(P1, 6, 6, Me.Width - 6, Me.Height - 6)
- G.DrawLine(P1, Me.Width - 6, 6, 6, Me.Height - 6)
- End Using
- ElseIf _SetImage = "Minimize" Then
- Using P1 As New Pen(Brushes.DimGray, 2)
- P1.StartCap = LineCap.Triangle : P1.EndCap = LineCap.Triangle
- G.DrawLine(P1, 6, Me.Height - 6, Me.Width - 6, Me.Height - 6)
- End Using
- ElseIf _SetImage = "Maximize" Then
- Using P1 As New Pen(Brushes.DimGray, 2)
- P1.StartCap = LineCap.Triangle : P1.EndCap = LineCap.Triangle
- G.FillRectangle(New SolidBrush(Color.FromArgb(Hover.ToArgb)), 6, 8, 16, 13)
- G.DrawRectangle(P1, 6, 8, 16, 13)
- G.FillRectangle(New SolidBrush(Color.FromArgb(Hover.ToArgb)), 12, Me.Height - 19, 16, 13)
- G.DrawRectangle(P1, 12, Me.Height - 19, 16, 13)
- End Using
- ElseIf _SetImage = "Stop" Then
- Dim R1 As New Rectangle(Me.Height / 2 - 6, Me.Width / 2 - 6, 12, 12)
- G.FillRectangle(New SolidBrush(Color.DimGray), R1)
- ElseIf _SetImage = "Play" Then
- G.SmoothingMode = SmoothingMode.AntiAlias
- Dim ptsArray As PointF() = {New PointF(10, 10), New PointF(Me.Width - 10, Me.Height / 2), New PointF(10, Me.Height - 10), New PointF(10, 10)}
- Dim gp As New Drawing2D.GraphicsPath(Drawing2D.FillMode.Alternate)
- gp.AddLines(ptsArray)
- gp.CloseFigure()
- G.FillPath(Brushes.DimGray, gp)
- End If
- End Sub
- End Class
- Public Class btnimProperty
- Inherits System.ComponentModel.StringConverter
- Public Overrides Function GetStandardValues(context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
- Return New StandardValuesCollection(myList)
- End Function
- Public Overrides Function GetStandardValuesSupported(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
- Return True
- End Function
- Public Overrides Function GetStandardValuesExclusive(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
- Return True
- End Function
- Private Function myList() As Collections.IList
- Dim imgList As New Collection
- With imgList
- .Add("Close")
- .Add("Minimize")
- .Add("Maximize")
- .Add("Stop")
- .Add("Play")
- End With
- Return imgList
- End Function
- End Class
- Public Class AVTextbox
- Inherits Control
- Dim WithEvents txtbox As New TextBox
- Private _passmask As Boolean = False
- Public Shadows Property UseSystemPasswordChar() As Boolean
- Get
- Return _passmask
- End Get
- Set(ByVal v As Boolean)
- txtbox.UseSystemPasswordChar = UseSystemPasswordChar
- _passmask = v
- Invalidate()
- End Set
- End Property
- Private _maxchars As Integer = 32767
- Public Shadows Property MaxLength() As Integer
- Get
- Return _maxchars
- End Get
- Set(ByVal v As Integer)
- _maxchars = v
- txtbox.MaxLength = MaxLength
- Invalidate()
- End Set
- End Property
- Private _align As HorizontalAlignment
- Public Shadows Property TextAlignment() As HorizontalAlignment
- Get
- Return _align
- End Get
- Set(ByVal v As HorizontalAlignment)
- _align = v
- Invalidate()
- End Set
- End Property
- Private _multiline As Boolean = False
- Public Shadows Property MultiLine() As Boolean
- Get
- Return _multiline
- End Get
- Set(ByVal value As Boolean)
- _multiline = value
- Invalidate()
- End Set
- End Property
- Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
- MyBase.OnTextChanged(e)
- Invalidate()
- End Sub
- Protected Overrides Sub OnBackColorChanged(ByVal e As System.EventArgs)
- MyBase.OnBackColorChanged(e)
- txtbox.BackColor = BackColor
- Invalidate()
- End Sub
- Protected Overrides Sub OnForeColorChanged(ByVal e As System.EventArgs)
- MyBase.OnForeColorChanged(e)
- txtbox.ForeColor = ForeColor
- Invalidate()
- End Sub
- Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)
- MyBase.OnFontChanged(e)
- txtbox.Font = Font
- End Sub
- Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
- MyBase.OnGotFocus(e)
- txtbox.Focus()
- End Sub
- Sub TextChngTxtBox() Handles txtbox.TextChanged
- Text = txtbox.Text
- End Sub
- Sub TextChng() Handles MyBase.TextChanged
- txtbox.Text = Text
- End Sub
- Sub NewTextBox()
- With txtbox
- .Multiline = False
- .BackColor = Color.FromArgb(43, 43, 43)
- .ForeColor = ForeColor
- .Text = String.Empty
- .TextAlign = HorizontalAlignment.Center
- .BorderStyle = BorderStyle.None
- .Location = New Point(7, 5)
- .Font = New Font("Verdana", 10)
- .Size = New Size(Width - 10, 33)
- .UseSystemPasswordChar = UseSystemPasswordChar
- End With
- End Sub
- Sub New()
- MyBase.New()
- NewTextBox()
- Controls.Add(txtbox)
- SetStyle(ControlStyles.UserPaint, True)
- SetStyle(ControlStyles.SupportsTransparentBackColor, True)
- Text = ""
- BackColor = Color.White
- ForeColor = Color.Gray
- Font = New Font("Verdana", 10)
- Size = New Size(135, 33)
- DoubleBuffered = True
- End Sub
- Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
- Dim B As New Bitmap(Width, Height)
- Dim G As Graphics = Graphics.FromImage(B)
- G.SmoothingMode = SmoothingMode.HighQuality
- Height = 33
- With txtbox
- .Width = Width - 10
- .TextAlign = TextAlignment
- .UseSystemPasswordChar = UseSystemPasswordChar
- .Height = 33
- End With
- G.Clear(Color.Transparent)
- G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), New Rectangle(0, 0, Width - 1, Height - 1))
- e.Graphics.DrawImage(B.Clone(), 0, 0)
- G.Dispose() : B.Dispose()
- End Sub
- End Class
- Class AVTabControl
- Inherits Windows.Forms.TabControl
- Private _DrawBottomBorder As Boolean
- Public Property DrawBottomBorder() As Boolean
- Get
- Return _DrawBottomBorder
- End Get
- Set(ByVal value As Boolean)
- _DrawBottomBorder = value
- Invalidate()
- End Set
- End Property
- Private _BorderColor As Pen = Pens.Black
- Public Property BorderColor() As Color
- Get
- Return _BorderColor.Color
- End Get
- Set(ByVal value As Color)
- _BorderColor = New Pen(value)
- Invalidate()
- End Set
- End Property
- Private _TextAlignment As StringAlignment = StringAlignment.Near
- Public Property TextAlignment() As StringAlignment
- Get
- Return _TextAlignment
- End Get
- Set(ByVal value As StringAlignment)
- _TextAlignment = value
- Invalidate()
- End Set
- End Property
- Sub New()
- SetStyle(DirectCast(139286, ControlStyles), True)
- SizeMode = TabSizeMode.Fixed
- Alignment = TabAlignment.Left
- ItemSize = New Size(50, 50)
- Font = New Font("Segoe UI", 9, FontStyle.Regular, GraphicsUnit.Point)
- DrawMode = TabDrawMode.OwnerDrawFixed
- P1 = New Pen(Color.FromArgb(94, 94, 94))
- P2 = New Pen(Color.FromArgb(17, 17, 17))
- B1 = New SolidBrush(Color.FromArgb(38, 38, 38))
- B2 = New SolidBrush(Color.FromArgb(35, 35, 35))
- B3 = New SolidBrush(Color.FromArgb(5, Color.White))
- SF1 = New StringFormat()
- SF1.LineAlignment = StringAlignment.Center
- For Each pg As TabPage In Me.TabPages
- pg.BackColor = Color.FromArgb(242, 242, 242)
- Next
- End Sub
- Protected Overrides Sub OnControlAdded(ByVal e As ControlEventArgs)
- If TypeOf e.Control Is TabPage Then
- For Each i As TabPage In Me.Controls
- i = New TabPage
- Next
- e.Control.BackColor = Color.FromArgb(242, 242, 242)
- End If
- MyBase.OnControlAdded(e)
- End Sub
- Private R1, R2 As Rectangle
- Private P1, P2 As Pen
- Private B1, B2, B3 As SolidBrush
- Private GB1 As LinearGradientBrush
- Private GB2 As LinearGradientBrush
- Private TP1 As TabPage
- Private SF1 As StringFormat
- Private ItemHeight As Integer
- Dim S1 As Size
- Dim REC As New Rectangle
- Dim BR1 As LinearGradientBrush
- Private G As Graphics
- Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
- Dim F1 As New System.Drawing.Font("Segoe UI", 9, FontStyle.Bold, GraphicsUnit.Point)
- G = e.Graphics
- G.TextRenderingHint = TextRenderingHint.ClearTypeGridFit
- G.SmoothingMode = SmoothingMode.AntiAlias
- G.Clear(Color.FromArgb(242, 242, 242))
- ItemHeight = ItemSize.Height + 2
- G.FillRectangle(B1, 0, 0, ItemHeight, Height)
- G.DrawRectangle(Pens.Black, 0, 0, ItemHeight, Height)
- Dim B5 As New SolidBrush(Color.FromArgb(51, 51, 51))
- Dim P5 As New Pen(B5)
- For I As Integer = 0 To TabCount - 1
- R1 = GetTabRect(I)
- R1.Y -= 1
- R1.Width += 1
- R1.X -= 1
- TP1 = TabPages(I)
- If SelectedIndex = I Then
- Using GB1 As New LinearGradientBrush(R1, Color.FromArgb(26, 26, 26), Color.FromArgb(17, 17, 17), 90.0F)
- Dim ColorBlend As New ColorBlend()
- ColorBlend.Colors = {Color.FromArgb(25, 25, 25), Color.FromArgb(17, 17, 17), Color.FromArgb(25, 25, 25)}
- ColorBlend.Positions = {0.0F, 0.5F, 1.0F}
- GB1.InterpolationColors = ColorBlend
- G.FillRectangle(GB1, R1)
- End Using
- G.DrawLine(P5, R1.Left, R1.Y - 1, R1.Width + 1, R1.Y - 1)
- If HoverIndex = I Then
- G.FillRectangle(B3, R1)
- End If
- R1.X += 5
- R1.Width -= 14
- R2 = R1
- R2.Y += 1
- R2.X += 1
- SF1.Alignment = _TextAlignment
- G.DrawString(TP1.Text, Font, Brushes.White, New Rectangle(R2.Left + 33, R2.Top - 1, R2.Width - 43, R2.Height), SF1)
- Try
- G.DrawImage(Me.ImageList.Images.Item(TabPages(I).ImageIndex), R1.X + 1, R1.Y + 11, 32, 32)
- Catch
- End Try
- Else
- Dim BR2 As New SolidBrush(Color.FromArgb(38, 38, 38))
- R1.Y -= 1
- G.FillRectangle(BR2, R1)
- G.DrawLine(P5, R1.X, R1.Y, R1.Right, R1.Y)
- If HoverIndex = I Then
- G.FillRectangle(B3, R1)
- End If
- Dim BR As New SolidBrush(Color.FromArgb(140, Color.Black))
- G.DrawLine(P2, R1.X, R1.Bottom - 1, R1.Right, R1.Bottom - 1)
- R1.X += 5
- R1.Width -= 14
- R2 = R1
- R2.Y += 1
- R2.X += 1
- SF1.Alignment = _TextAlignment
- G.DrawString(TP1.Text, Font, Brushes.Gray, New Rectangle(R2.Left + 33, R2.Top - 1, R2.Width - 43, R2.Height), SF1)
- Try
- G.DrawImage(Me.ImageList.Images.Item(TabPages(I).ImageIndex), R1.X + 2, R1.Y + 11, 32, 32)
- Catch
- End Try
- End If
- G.DrawLine(P5, R1.Right + 8, R1.Top, R1.Right + 8, R1.Bottom - 3)
- Next
- G.DrawLine(Pens.Black, 0, 0, R2.Height - 9, 0)
- G.DrawLine(_BorderColor, ItemHeight, 0, ItemHeight, Height)
- G.DrawLine(P5, R1.Left - 5, ItemSize.Width * (TabCount), R1.Right + 8, ItemSize.Width * (TabCount))
- If _DrawBottomBorder Then
- G.DrawLine(_BorderColor, 0, Height - 1, Width, Height - 1)
- End If
- G.DrawLine(P5, R1.Left - 5, ((TabCount) * (R1.Width + 12)) + (TabCount * 2), R1.Left - 5, 1)
- End Sub
- Private HoverIndex As Integer = -1
- Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
- For I As Integer = 0 To TabPages.Count - 1
- If GetTabRect(I).Contains(e.Location) Then
- HoverIndex = I
- Exit For
- End If
- Next
- Invalidate()
- MyBase.OnMouseMove(e)
- End Sub
- Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
- HoverIndex = -1
- Invalidate()
- MyBase.OnMouseLeave(e)
- End Sub
- End Class
- Public Class AVProgressBar
- Inherits Control
- Private _Value As Integer = 50
- Private _Thickness As Integer = 5
- Private _Angle As Integer = 0
- Private _Symbol As String = "%"
- Sub New()
- Size = New Size(65, 65)
- Invalidate()
- End Sub
- Public Property Angle() As Integer
- Get
- Return _Angle
- End Get
- Set(ByVal v As Integer)
- _Angle = v : Invalidate()
- End Set
- End Property
- Public Property Symbol() As String
- Get
- Return _Symbol
- End Get
- Set(ByVal v As String)
- _Symbol = v : Invalidate()
- End Set
- End Property
- Public Property Thickness() As Integer
- Get
- Return _Thickness
- End Get
- Set(ByVal v As Integer)
- _Thickness = v : Invalidate()
- End Set
- End Property
- Protected Overrides Sub OnPaintBackground(ByVal p As PaintEventArgs)
- End Sub
- Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
- MyBase.OnPaint(e)
- Me.Width = Me.Height
- Using B1 As New Bitmap(Width, Height)
- Using G As Graphics = Graphics.FromImage(B1)
- G.SmoothingMode = SmoothingMode.AntiAlias
- G.Clear(BackColor)
- Using LGB As New LinearGradientBrush(ClientRectangle, Color.FromArgb(217, 217, 217), Color.FromArgb(217, 217, 217), LinearGradientMode.Vertical)
- Using P1 As New Pen(LGB, Thickness + 3)
- G.DrawArc(P1, CInt(Thickness / 2) + 2, CInt(Thickness / 2) + 2, Width - Thickness - 4, Height - Thickness - 4, -90, 360)
- End Using
- End Using
- Using LGB As New LinearGradientBrush(ClientRectangle, Color.FromArgb(0, 166, 208), Color.FromArgb(0, 166, 208), LinearGradientMode.Vertical)
- Using P1 As New Pen(LGB, Thickness + 3)
- G.DrawArc(P1, CInt(Thickness / 2) + 9, CInt(Thickness / 2) + 9, Width - Thickness - 18, Height - Thickness - 18, -90, 360)
- End Using
- End Using
- Using LGB As New LinearGradientBrush(ClientRectangle, Color.FromArgb(255, 255, 255), Color.FromArgb(255, 255, 255), LinearGradientMode.Vertical)
- Using P1 As New Pen(LGB, Thickness - 2)
- Dim i As Integer = 360 / 100 * _Value
- G.DrawArc(P1, CInt(Thickness / 2) + 9, CInt(Thickness / 2) + 9, Width - Thickness - 18, Height - Thickness - 18, -90, i)
- End Using
- End Using
- G.DrawString(_Value & _Symbol, New Font("Arial", 13), Brushes.Black, New Point(Me.Width / 2 - G.MeasureString(_Value & _Symbol, New Font("Arial", 13)).Width / 2 + 1, Me.Height / 2 - G.MeasureString(_Value & "%", New Font("Arial", 13)).Height / 2 + 1))
- End Using
- e.Graphics.DrawImage(B1, 0, 0)
- End Using
- End Sub
- End Class
- Public Class AVLabel : Inherits Control
- Sub New()
- Me.Size = New Size(175, 25)
- End Sub
- Private _String1 As String = "Quick Scan"
- Private _String2 As String = "/ Scan running..."
- Private _Img As Image
- Public Property String1() As String
- Get
- Return _String1
- End Get
- Set(v As String)
- _String1 = v : Invalidate()
- End Set
- End Property
- Public Property String2() As String
- Get
- Return _String2
- End Get
- Set(v As String)
- _String2 = v : Invalidate()
- End Set
- End Property
- Public Property Image As Image
- Get
- Return _Img
- End Get
- Set(v As Image)
- _Img = v : Invalidate()
- End Set
- End Property
- Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
- MyBase.OnPaint(e)
- Dim G As Graphics
- G = e.Graphics
- G.TextRenderingHint = Drawing.Text.TextRenderingHint.AntiAlias
- G.DrawString(_String1, New Font("Segoe UI", 9, FontStyle.Bold), Brushes.DimGray, 32, 6)
- G.DrawString(_String2, New Font("Segoe UI", 9), Brushes.DimGray, 33 + G.MeasureString(_String1, New Font("Segoe UI", 9, FontStyle.Bold)).Width, 6)
- If Not _Img Is Nothing Then
- G.DrawImage(_Img, 0, 0)
- End If
- End Sub
- End Class
- Public Class AVComboBox
- Inherits ComboBox
- Private _StartIndex As Integer = 0
- Private C1 As Color = Color.FromArgb(254, 254, 254)
- Private C2 As Color = Color.FromArgb(244, 244, 244)
- Public Property StartIndex As Integer
- Get
- Return _StartIndex
- End Get
- Set(ByVal value As Integer)
- _StartIndex = value
- Try
- MyBase.SelectedIndex = value
- Catch
- End Try
- Invalidate()
- End Set
- End Property
- Sub ReplaceItem(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles Me.DrawItem
- e.DrawBackground()
- Try
- If (e.State And DrawItemState.Selected) = DrawItemState.Selected Then
- e.Graphics.FillRectangle(New SolidBrush(Color.LightGray), e.Bounds)
- Using b As New SolidBrush(e.ForeColor)
- e.Graphics.DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), New Font("Verdana", 10), b, 1, e.Bounds.Top + 5)
- End Using
- Else
- e.Graphics.DrawString(MyBase.GetItemText(MyBase.Items(e.Index)), New Font("Verdana", 10), Brushes.Gray, 1, e.Bounds.Top + 5)
- End If
- Catch
- End Try
- e.DrawFocusRectangle()
- Me.Invalidate()
- End Sub
- Protected Sub DrawTriangle(ByVal Clr As Color, ByVal FirstPoint As Point, ByVal SecondPoint As Point, ByVal ThirdPoint As Point, ByVal G As Graphics)
- Dim points As New List(Of Point)()
- points.Add(FirstPoint)
- points.Add(SecondPoint)
- points.Add(ThirdPoint)
- G.FillPolygon(New SolidBrush(Clr), points.ToArray)
- End Sub
- Sub New()
- Me.Width = 163
- Me.Font = New Font("Verdana", 15)
- Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or _
- ControlStyles.ResizeRedraw Or _
- ControlStyles.UserPaint Or _
- ControlStyles.DoubleBuffer, True)
- Me.DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
- Me.BackColor = C1
- Me.ForeColor = C1
- Me.DropDownStyle = ComboBoxStyle.DropDownList
- Me.DoubleBuffered = True
- End Sub
- Protected Overrides Sub OnTextChanged(e As System.EventArgs)
- MyBase.OnTextChanged(e)
- Invalidate()
- End Sub
- Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
- C2 = Color.FromArgb(233, 233, 233)
- MyBase.Invalidate()
- MyBase.OnMouseClick(e)
- End Sub
- Protected Overrides Sub OnMouseUp(e As System.Windows.Forms.MouseEventArgs)
- C2 = Color.FromArgb(244, 244, 244)
- MyBase.Invalidate()
- MyBase.OnMouseUp(e)
- End Sub
- Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
- MyBase.OnPaint(e)
- Dim G As Graphics
- G = e.Graphics
- G.FillRectangle(New SolidBrush(Color.FromArgb(C2.ToArgb)), New Rectangle(Width - 20, 2, 17, Height - 5))
- G.SmoothingMode = SmoothingMode.HighQuality
- Try
- G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), New Rectangle(Width - 20, 2, 17, Height - 5))
- Try
- G.DrawString(Text, New Font("Verdana", 10), Brushes.Gray, New Rectangle(3, 0, Width - 20, Height), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Near})
- Catch : End Try
- G.DrawLine(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), 0, 0, 0, 0)
- G.DrawRectangle(New Pen(New SolidBrush(Color.FromArgb(216, 216, 216))), New Rectangle(0, 0, Width - 1, Height - 1))
- DrawTriangle(Color.FromArgb(216, 216, 216), New Point(Width - 15, 14), New Point(Width - 8, 14), New Point(Width - 12, 17), G)
- Catch
- End Try
- End Sub
- End Class
- Public Class AVButton
- Inherits Control
- Private Hover As Color
- Private _MainColor As String
- Private Loaded As Boolean
- Sub New()
- Me.Size = New Size(33, 33)
- Me.DoubleBuffered = True
- SetStyle(ControlStyles.SupportsTransparentBackColor, True)
- Me.BackColor = Color.Transparent
- End Sub
- <TypeConverter(GetType(btnColorProperty)), Category("Misc"), Description("Select color from the list")>
- Public Property MainColor() As String
- Get
- Return _MainColor
- End Get
- Set(value As String)
- _MainColor = value
- End Set
- End Property
- Protected Overrides Sub OnMouseEnter(ByVal e As EventArgs)
- Hover = Color.FromArgb(228, 228, 228)
- If _MainColor = "Light" Then
- Hover = Color.FromArgb(228, 228, 228)
- Else
- Hover = Color.FromArgb(117, 117, 117)
- End If
- MyBase.Invalidate()
- MyBase.OnMouseEnter(e)
- End Sub
- Protected Overrides Sub OnMouseLeave(ByVal e As EventArgs)
- Hover = Color.FromArgb(242, 242, 242)
- If _MainColor = "Light" Then
- Hover = Color.FromArgb(242, 242, 242)
- Else
- Hover = Color.DimGray
- End If
- MyBase.Invalidate()
- MyBase.OnMouseEnter(e)
- End Sub
- Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
- If _MainColor = "Light" Then
- Hover = Color.FromArgb(228, 228, 228)
- Else
- Hover = Color.FromArgb(117, 117, 117)
- End If
- MyBase.Invalidate()
- MyBase.OnMouseUp(e)
- End Sub
- Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
- If _MainColor = "Light" Then
- Hover = Color.FromArgb(151, 151, 151)
- Else
- Hover = Color.FromArgb(66, 66, 66)
- End If
- MyBase.Invalidate()
- MyBase.OnMouseClick(e)
- End Sub
- Public Function RoundRect(ByVal Rectangle As Rectangle, ByVal Curve As Integer) As GraphicsPath
- Dim P As GraphicsPath = New GraphicsPath()
- Dim ArcRectangleWidth As Integer = Curve * 2
- P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
- P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
- P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
- P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
- P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
- Return P
- End Function
- Protected Overrides Sub OnPaint(e As System.Windows.Forms.PaintEventArgs)
- MyBase.OnPaint(e)
- Dim G As Graphics
- G = e.Graphics
- If Loaded = False Then
- If MainColor = "Light" Then
- Hover = Color.FromArgb(242, 242, 242)
- Else
- Hover = Color.DimGray
- End If
- Loaded = True
- End If
- G.SmoothingMode = SmoothingMode.HighQuality
- If MainColor = "Light" Then
- G.FillPath(New SolidBrush(Color.FromArgb(Hover.ToArgb)), RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 5))
- Else
- G.FillPath(New SolidBrush(Color.FromArgb(Hover.ToArgb)), RoundRect(New Rectangle(0, 0, Width - 1, Height - 1), 5))
- End If
- G.DrawString(Text, New Font("Verdana", 10), Brushes.Black, Me.Width / 2 - G.MeasureString(Text, New Font("Verdana", 10)).Width / 2, Me.Height / 2 - G.MeasureString(Text, New Font("Verdana", 10)).Height / 2)
- G.SmoothingMode = SmoothingMode.None
- End Sub
- End Class
- Public Class btnColorProperty
- Inherits System.ComponentModel.StringConverter
- Public Overrides Function GetStandardValues(context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
- Return New StandardValuesCollection(myList)
- End Function
- Public Overrides Function GetStandardValuesSupported(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
- Return True
- End Function
- Public Overrides Function GetStandardValuesExclusive(context As System.ComponentModel.ITypeDescriptorContext) As Boolean
- Return True
- End Function
- Private Function myList() As Collections.IList
- Dim imgList As New Collection
- With imgList
- .Add("Light")
- .Add("Dark")
- End With
- Return imgList
- End Function
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement