Dr_FarFar

BlackShades.NET (VB.NET Theme)

Apr 15th, 2016
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Imports System, System.IO, System.Collections.Generic, System.Runtime.InteropServices, System.ComponentModel
  2. Imports System.Drawing, System.Drawing.Drawing2D, System.Drawing.Imaging, System.Windows.Forms
  3.  
  4. Enum MouseState As Byte
  5.     None = 0
  6.     Over = 1
  7.     Down = 2
  8.     Block = 3
  9. End Enum
  10.  
  11. #Region " GLOBAL FUNCTIONS "
  12.  
  13. Class Draw
  14.     Public Function RoundRect(ByVal Rectangle As Rectangle, ByVal Curve As Integer) As GraphicsPath
  15.         Dim P As GraphicsPath = New GraphicsPath()
  16.         Dim ArcRectangleWidth As Integer = Curve * 2
  17.         P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
  18.         P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
  19.         P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
  20.         P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
  21.         P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
  22.         Return P
  23.     End Function
  24.     Public Function RoundRect(ByVal X As Integer, ByVal Y As Integer, ByVal Width As Integer, ByVal Height As Integer, ByVal Curve As Integer) As GraphicsPath
  25.         Dim Rectangle As Rectangle = New Rectangle(X, Y, Width, Height)
  26.         Dim P As GraphicsPath = New GraphicsPath()
  27.         Dim ArcRectangleWidth As Integer = Curve * 2
  28.         P.AddArc(New Rectangle(Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -180, 90)
  29.         P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), -90, 90)
  30.         P.AddArc(New Rectangle(Rectangle.Width - ArcRectangleWidth + Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 0, 90)
  31.         P.AddArc(New Rectangle(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y, ArcRectangleWidth, ArcRectangleWidth), 90, 90)
  32.         P.AddLine(New Point(Rectangle.X, Rectangle.Height - ArcRectangleWidth + Rectangle.Y), New Point(Rectangle.X, Curve + Rectangle.Y))
  33.         Return P
  34.     End Function
  35. End Class
  36.  
  37. #End Region
  38.  
  39.  
  40. Public Class BlackShadesNetForm : Inherits ContainerControl
  41.  
  42. #Region " Control Help - Movement & Flicker Control "
  43.     Private MouseP As Point = New Point(0, 0)
  44.     Private Cap As Boolean = False
  45.     Private MoveHeight As Integer
  46.     Private pos As Integer = 0
  47.  
  48.     Private Sub minimBtnClick() Handles minimBtn.Click
  49.         ParentForm.FindForm.WindowState = FormWindowState.Minimized
  50.     End Sub
  51.     Private Sub closeBtnClick() Handles closeBtn.Click
  52.         If CloseButtonExitsApp Then
  53.             System.Environment.Exit(0)
  54.         Else
  55.             ParentForm.FindForm.Close()
  56.         End If
  57.     End Sub
  58.     Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
  59.         MyBase.OnMouseDown(e)
  60.         If e.Button = Windows.Forms.MouseButtons.Left And New Rectangle(0, 0, Width, MoveHeight).Contains(e.Location) Then
  61.             Cap = True : MouseP = e.Location
  62.         End If
  63.     End Sub
  64.     Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
  65.         MyBase.OnMouseUp(e) : Cap = False
  66.     End Sub
  67.     Protected Overrides Sub OnMouseMove(ByVal e As System.Windows.Forms.MouseEventArgs)
  68.         MyBase.OnMouseMove(e)
  69.         If Cap Then
  70.             Parent.Location = MousePosition - MouseP
  71.         End If
  72.     End Sub
  73.     Protected Overrides Sub OnInvalidated(ByVal e As System.Windows.Forms.InvalidateEventArgs)
  74.         MyBase.OnInvalidated(e)
  75.         ParentForm.FindForm.Text = Text
  76.     End Sub
  77.     Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
  78.     End Sub
  79.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  80.         MyBase.OnTextChanged(e)
  81.         Invalidate()
  82.     End Sub
  83.     Protected Overrides Sub OnCreateControl()
  84.         MyBase.OnCreateControl()
  85.         Me.ParentForm.FormBorderStyle = FormBorderStyle.None
  86.         Me.ParentForm.TransparencyKey = Color.Fuchsia
  87.     End Sub
  88.     Protected Overrides Sub CreateHandle()
  89.         MyBase.CreateHandle()
  90.     End Sub
  91.     Private _closesEnv As Boolean = False
  92.     Public Property CloseButtonExitsApp() As Boolean
  93.         Get
  94.             Return _closesEnv
  95.         End Get
  96.         Set(ByVal v As Boolean)
  97.             _closesEnv = v
  98.             Invalidate()
  99.         End Set
  100.     End Property
  101.  
  102.     Private _minimBool As Boolean = True
  103.     Public Property MinimizeButton() As Boolean
  104.         Get
  105.             Return _minimBool
  106.         End Get
  107.         Set(ByVal v As Boolean)
  108.             _minimBool = v
  109.             Invalidate()
  110.         End Set
  111.     End Property
  112.  
  113. #End Region
  114.  
  115.     Dim WithEvents minimBtn As New BlackShadesNetTopButton With {.Location = New Point(Width - 44, 7)}
  116.     Dim WithEvents closeBtn As New BlackShadesNetTopButton With {.Location = New Point(Width - 27, 7)}
  117.  
  118.     Sub New()
  119.         MyBase.New()
  120.         Dock = DockStyle.Fill
  121.         MoveHeight = 25
  122.         Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  123.         ForeColor = Color.FromArgb(142, 152, 156)
  124.         DoubleBuffered = True
  125.  
  126.         Controls.Add(closeBtn)
  127.  
  128.         closeBtn.Refresh() : minimBtn.Refresh()
  129.     End Sub
  130.  
  131.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  132.  
  133.         Const curve As Integer = 7
  134.         Dim B As New Bitmap(Width, Height)
  135.         Dim G As Graphics = Graphics.FromImage(B)
  136.  
  137.         If _minimBool Then
  138.             Controls.Add(minimBtn)
  139.         Else
  140.             Controls.Remove(minimBtn)
  141.         End If
  142.  
  143.         minimBtn.Location = New Point(Width - 44, 7)
  144.         closeBtn.Location = New Point(Width - 27, 7)
  145.  
  146.         G.SmoothingMode = SmoothingMode.Default
  147.         Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
  148.         Dim TransparencyKey As Color = Me.ParentForm.TransparencyKey
  149.         Dim d As New Draw()
  150.         MyBase.OnPaint(e)
  151.  
  152.         G.Clear(TransparencyKey)
  153.  
  154.         G.FillPath(New SolidBrush(Color.FromArgb(42, 47, 49)), d.RoundRect(ClientRectangle, curve))
  155.  
  156.  
  157.         'DRAW GRADIENTED BORDER
  158.         Dim innerGradLeft As New LinearGradientBrush(New Rectangle(1, 1, Width / 2 - 1, Height - 3), _
  159.                                              Color.FromArgb(102, 108, 112), Color.FromArgb(204, 216, 224), 0S)
  160.         Dim innerGradRight As New LinearGradientBrush(New Rectangle(1, 1, Width / 2 - 1, Height - 3), _
  161.                                      Color.FromArgb(204, 216, 224), Color.FromArgb(102, 108, 112), 0S)
  162.         G.DrawPath(New Pen(innerGradLeft), d.RoundRect(New Rectangle(1, 1, Width / 2 + 3, Height - 3), curve))
  163.         G.DrawPath(New Pen(innerGradRight), d.RoundRect(New Rectangle(Width / 2 - 5, 1, Width / 2 + 3, Height - 3), curve))
  164.  
  165.  
  166.         G.FillPath(New SolidBrush(Color.FromArgb(42, 47, 49)), d.RoundRect(New Rectangle(2, 2, Width - 5, Height - 5), curve))
  167.  
  168.  
  169.         Dim topGradLeft As New LinearGradientBrush(New Rectangle(0, 0, Width - 1, 25), Color.FromArgb(42, 46, 48), _
  170.                                                    Color.FromArgb(93, 98, 101), 0S)
  171.         Dim topGradRight As New LinearGradientBrush(New Rectangle(0, 0, Width - 1, 25), Color.FromArgb(93, 98, 101), _
  172.                                            Color.FromArgb(42, 46, 48), 0S)
  173.         G.FillPath(topGradLeft, d.RoundRect(New Rectangle(2, 2, Width / 2 + 2, 25), curve))
  174.         G.FillPath(topGradRight, d.RoundRect(New Rectangle(Width / 2 - 3, 2, Width / 2 - 1, 25), curve))
  175.  
  176.         G.FillRectangle(New SolidBrush(Color.FromArgb(42, 47, 49)), New Rectangle(2, 23, Width - 5, 10))
  177.  
  178.         G.DrawPath(New Pen(Color.FromArgb(42, 46, 48)), d.RoundRect(New Rectangle(2, 2, Width - 5, Height - 5), curve))
  179.         G.DrawPath(New Pen(Color.FromArgb(9, 11, 12)), d.RoundRect(ClientRectangle, curve))
  180.  
  181.         G.DrawString(Text, Font, Brushes.White, New Rectangle(curve, curve - 2, Width - 1, 22), New StringFormat() With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
  182.  
  183.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  184.         G.Dispose() : B.Dispose()
  185.     End Sub
  186. End Class
  187.  
  188. Public Class BlackShadesNetButton : Inherits Control
  189.  
  190. #Region " Control Help - MouseState & Flicker Control"
  191.     Private State As MouseState = MouseState.None
  192.     Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
  193.         MyBase.OnMouseEnter(e)
  194.         State = MouseState.Over
  195.         Invalidate()
  196.     End Sub
  197.     Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
  198.         MyBase.OnMouseDown(e)
  199.         State = MouseState.Down
  200.         Invalidate()
  201.     End Sub
  202.     Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
  203.         MyBase.OnMouseLeave(e)
  204.         State = MouseState.None
  205.         Invalidate()
  206.     End Sub
  207.     Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
  208.         MyBase.OnMouseUp(e)
  209.         State = MouseState.Over
  210.         Invalidate()
  211.     End Sub
  212.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  213.     End Sub
  214.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  215.         MyBase.OnTextChanged(e)
  216.         Invalidate()
  217.     End Sub
  218.     Private _align As StringAlignment = StringAlignment.Center
  219.     Public Shadows Property TextAlignment() As StringAlignment
  220.         Get
  221.             Return _align
  222.         End Get
  223.         Set(ByVal v As StringAlignment)
  224.             _align = v
  225.             Invalidate()
  226.         End Set
  227.     End Property
  228.  
  229. #End Region
  230.  
  231.     Sub New()
  232.         MyBase.New()
  233.         BackColor = Color.FromArgb(38, 38, 38)
  234.         Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  235.         'ForeColor = Color.FromArgb(142, 152, 156)
  236.         ForeColor = Color.White
  237.         DoubleBuffered = True
  238.         Size = New Size(75, 23)
  239.     End Sub
  240.  
  241.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  242.         Dim B As New Bitmap(Width, Height)
  243.         Dim G As Graphics = Graphics.FromImage(B)
  244.  
  245.         Const curve As Integer = 3
  246.         Dim ClientRectangle = New Rectangle(0, 0, Width - 1, Height - 1)
  247.  
  248.         Dim d As New Draw()
  249.         G.SmoothingMode = SmoothingMode.HighQuality
  250.         'G.Clear(Color.FromArgb(20, 20, 20))
  251.         'Dim bg As Color = Parent.FindForm.BackColor
  252.         G.Clear(Color.FromArgb(42, 47, 49))
  253.  
  254.         Select Case State
  255.             Case MouseState.None 'Mouse None
  256.                 G.FillPath(New SolidBrush(Color.FromArgb(32, 36, 38)), d.RoundRect(New Rectangle(0, 0, Width - 1, Height - 2), curve))
  257.                 Dim gloss As New LinearGradientBrush(New Rectangle(1, 1, Width - 5, Height / 2 - 3), Color.FromArgb(70, Color.White), Color.Transparent, 90S)
  258.                 G.FillPath(gloss, d.RoundRect(New Rectangle(0, 0, Width - 1, Height / 2 - 3), curve))
  259.                 Dim borderRect As New LinearGradientBrush(ClientRectangle, Color.FromArgb(36, 31, 43), Color.FromArgb(61, 65, 68), 90S)
  260.                 G.DrawPath(New Pen(Color.FromArgb(99, 103, 105)), d.RoundRect(New Rectangle(0, 1, Width - 1, Height - 3), curve))
  261.                 G.DrawPath(New Pen(borderRect), d.RoundRect(New Rectangle(0, 0, Width - 1, Height - 2), curve))
  262.                 G.DrawPath(New Pen(Color.FromArgb(27, 31, 33)), d.RoundRect(New Rectangle(1, 0, Width - 3, Height - 3), curve))
  263.             Case MouseState.Over 'Mouse Hover
  264.                 G.FillPath(New SolidBrush(Color.FromArgb(32, 36, 38)), d.RoundRect(New Rectangle(0, 0, Width - 1, Height - 2), curve))
  265.                 Dim gloss As New LinearGradientBrush(New Rectangle(1, 1, Width - 5, Height / 2 - 3), Color.FromArgb(70, Color.White), Color.Transparent, 90S)
  266.                 G.FillPath(gloss, d.RoundRect(New Rectangle(0, 0, Width - 1, Height / 2 - 3), curve))
  267.                 Dim borderRect As New LinearGradientBrush(ClientRectangle, Color.FromArgb(36, 31, 43), Color.FromArgb(61, 65, 68), 90S)
  268.                 G.DrawPath(New Pen(Color.FromArgb(99, 103, 105)), d.RoundRect(New Rectangle(0, 1, Width - 1, Height - 3), curve))
  269.                 G.DrawPath(New Pen(Color.FromArgb(100, 99, 103, 105)), d.RoundRect(New Rectangle(2, 2, Width - 5, Height - 6), curve))
  270.                 G.DrawPath(New Pen(borderRect), d.RoundRect(New Rectangle(0, 0, Width - 1, Height - 2), curve))
  271.                 G.DrawPath(New Pen(Color.FromArgb(27, 31, 33)), d.RoundRect(New Rectangle(1, 0, Width - 3, Height - 3), curve))
  272.                 G.DrawPath(New Pen(Color.FromArgb(0, 186, 255)), d.RoundRect(New Rectangle(1, 1, Width - 3, Height - 4), curve))
  273.             Case MouseState.Down 'Mouse Down
  274.                 G.FillPath(New SolidBrush(Color.FromArgb(32, 36, 38)), d.RoundRect(New Rectangle(0, 0, Width - 1, Height - 2), curve))
  275.                 Dim topGrad As New LinearGradientBrush(New Rectangle(0, 0, Width - 1, Height / 2 - 1), Color.FromArgb(32, 36, 38), Color.FromArgb(57, 57, 57), 90S)
  276.                 G.FillPath(topGrad, d.RoundRect(New Rectangle(0, 0, Width - 1, Height / 2 + 1), curve))
  277.                 Dim botGrad As New LinearGradientBrush(New Rectangle(0, 0, Width - 1, Height / 2 - 1), Color.FromArgb(57, 57, 57), Color.FromArgb(32, 36, 38), 90S)
  278.                 G.FillPath(botGrad, d.RoundRect(New Rectangle(0, Height / 2 - 1, Width - 1, Height / 2 + 2), curve))
  279.                 G.DrawLine(New Pen(Color.FromArgb(57, 57, 57)), 0, Convert.ToInt32(Height / 2 - 1), Width - 1, Convert.ToInt32(Height / 2 - 1))
  280.  
  281.                 Dim borderRect As New LinearGradientBrush(ClientRectangle, Color.FromArgb(36, 31, 43), Color.FromArgb(61, 65, 68), 90S)
  282.                 G.DrawPath(New Pen(borderRect), d.RoundRect(New Rectangle(0, 0, Width - 1, Height - 2), curve))
  283.                 G.DrawPath(New Pen(Color.FromArgb(27, 31, 33)), d.RoundRect(New Rectangle(1, 0, Width - 3, Height - 3), curve))
  284.  
  285.         End Select
  286.  
  287.         'G.DrawRectangle(Pens.Black, ClientRectangle)
  288.  
  289.         'G.DrawString(Text, Font, Brushes.Black, New Rectangle(-1, -2, Width - 1, Height - 1), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
  290.         G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(-1, -1, Width - 1, Height - 1), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Center})
  291.  
  292.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  293.         G.Dispose() : B.Dispose()
  294.     End Sub
  295. End Class
  296.  
  297. Public Class BlackShadesNetTopButton : Inherits Control
  298. #Region " Control Help - MouseState & Flicker Control"
  299.  
  300.     Private State As MouseState = MouseState.None
  301.  
  302.     Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
  303.         MyBase.OnMouseEnter(e)
  304.         State = MouseState.Over
  305.         Invalidate()
  306.     End Sub
  307.     Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
  308.         MyBase.OnMouseDown(e)
  309.         State = MouseState.Down
  310.         Invalidate()
  311.     End Sub
  312.     Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
  313.         MyBase.OnMouseLeave(e)
  314.         State = MouseState.None
  315.         Invalidate()
  316.     End Sub
  317.     Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
  318.         MyBase.OnMouseUp(e)
  319.         State = MouseState.Over
  320.         Invalidate()
  321.     End Sub
  322.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  323.     End Sub
  324.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  325.         MyBase.OnTextChanged(e)
  326.         Invalidate()
  327.     End Sub
  328. #End Region
  329.  
  330.     Sub New()
  331.         MyBase.New()
  332.         BackColor = Color.FromArgb(38, 38, 38)
  333.         Font = New Font("Verdana", 8.25F)
  334.         Size = New Size(15, 11)
  335.         DoubleBuffered = True
  336.         Focus()
  337.     End Sub
  338.  
  339.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  340.         Dim B As New Bitmap(Width, Height)
  341.         Dim G As Graphics = Graphics.FromImage(B)
  342.         Dim d As New Draw()
  343.  
  344.         Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
  345.  
  346.         Size = New Size(15, 11)
  347.         G.Clear(Color.FromArgb(49, 53, 55))
  348.  
  349.         Select Case State
  350.             Case MouseState.None 'Mouse None
  351.                 Dim border As New LinearGradientBrush(ClientRectangle, Color.FromArgb(200, 44, 47, 51), Color.FromArgb(80, 64, 69, 71), 90S)
  352.                 G.FillPath(border, d.RoundRect(ClientRectangle, 1))
  353.                 Dim bodyGrad As New LinearGradientBrush(New Rectangle(2, 2, Width - 6, Height - 6), Color.FromArgb(90, 97, 101), Color.FromArgb(63, 69, 73), 90S)
  354.                 G.FillPath(bodyGrad, d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  355.                 G.DrawPath(New Pen(Color.FromArgb(30, 32, 35)), d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  356.             Case MouseState.Over
  357.                 Dim border As New LinearGradientBrush(ClientRectangle, Color.FromArgb(200, 44, 47, 51), Color.FromArgb(80, 64, 69, 71), 90S)
  358.                 G.FillPath(border, d.RoundRect(ClientRectangle, 1))
  359.                 Dim bodyGrad As New LinearGradientBrush(New Rectangle(2, 2, Width - 6, Height - 6), Color.FromArgb(90, 97, 101), Color.FromArgb(63, 69, 73), 90S)
  360.                 G.FillPath(bodyGrad, d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  361.                 G.DrawPath(New Pen(Color.FromArgb(30, 32, 35)), d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  362.                 G.DrawPath(New Pen(Color.FromArgb(200, 0, 186, 255)), d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  363.             Case MouseState.Down
  364.                 Dim border As New LinearGradientBrush(ClientRectangle, Color.FromArgb(200, 44, 47, 51), Color.FromArgb(80, 64, 69, 71), 90S)
  365.                 G.FillPath(border, d.RoundRect(ClientRectangle, 1))
  366.                 Dim bodyGrad As New LinearGradientBrush(New Rectangle(2, 2, Width - 6, Height - 6), Color.FromArgb(90, 97, 101), Color.FromArgb(63, 69, 73), 135S)
  367.                 G.FillPath(bodyGrad, d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  368.                 G.DrawPath(New Pen(Color.FromArgb(30, 32, 35)), d.RoundRect(New Rectangle(2, 2, Width - 6, Height - 6), 1))
  369.         End Select
  370.  
  371.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  372.         G.Dispose() : B.Dispose()
  373.     End Sub
  374. End Class
  375.  
  376. Public Class BlackShadesNetMultiLineTextBox : Inherits Control
  377.     Dim WithEvents txtbox As New TextBox
  378.  
  379. #Region " Control Help - Properties & Flicker Control "
  380.     Private _maxchars As Integer = 32767
  381.     Public Property MaxCharacters() As Integer
  382.         Get
  383.             Return _maxchars
  384.         End Get
  385.         Set(ByVal v As Integer)
  386.             _maxchars = v
  387.             Invalidate()
  388.         End Set
  389.     End Property
  390.     Private _align As HorizontalAlignment
  391.     Public Shadows Property TextAlignment() As HorizontalAlignment
  392.         Get
  393.             Return _align
  394.         End Get
  395.         Set(ByVal v As HorizontalAlignment)
  396.             _align = v
  397.             Invalidate()
  398.         End Set
  399.     End Property
  400.  
  401.  
  402.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  403.     End Sub
  404.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  405.         MyBase.OnTextChanged(e)
  406.         Invalidate()
  407.     End Sub
  408.     Protected Overrides Sub OnBackColorChanged(ByVal e As System.EventArgs)
  409.         MyBase.OnBackColorChanged(e)
  410.         txtbox.BackColor = BackColor
  411.         Invalidate()
  412.     End Sub
  413.     Protected Overrides Sub OnForeColorChanged(ByVal e As System.EventArgs)
  414.         MyBase.OnForeColorChanged(e)
  415.         txtbox.ForeColor = ForeColor
  416.         Invalidate()
  417.     End Sub
  418.     Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
  419.         MyBase.OnSizeChanged(e)
  420.         txtbox.Size = New Size(Width - 10, Height - 11)
  421.     End Sub
  422.     Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)
  423.         MyBase.OnFontChanged(e)
  424.         txtbox.Font = Font
  425.     End Sub
  426.     Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
  427.         MyBase.OnGotFocus(e)
  428.         txtbox.Focus()
  429.     End Sub
  430.     Sub TextChngTxtBox() Handles txtbox.TextChanged
  431.         Text = txtbox.Text
  432.     End Sub
  433.     Sub TextChng() Handles MyBase.TextChanged
  434.         txtbox.Text = Text
  435.     End Sub
  436.     Sub NewTextBox()
  437.         With txtbox
  438.             .Multiline = True
  439.             .BackColor = BackColor
  440.             .ForeColor = ForeColor
  441.             .Text = String.Empty
  442.             .TextAlign = HorizontalAlignment.Center
  443.             .BorderStyle = BorderStyle.None
  444.             .Location = New Point(3, 4)
  445.             .Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  446.             .Size = New Size(Width - 10, Height - 10)
  447.         End With
  448.         txtbox.Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  449.     End Sub
  450. #End Region
  451.  
  452.     Sub New()
  453.         MyBase.New()
  454.  
  455.         NewTextBox()
  456.         Controls.Add(txtbox)
  457.  
  458.         Text = ""
  459.         BackColor = Color.FromArgb(36, 40, 42)
  460.         ForeColor = Color.FromArgb(142, 152, 156)
  461.         Size = New Size(135, 35)
  462.         DoubleBuffered = True
  463.     End Sub
  464.  
  465.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  466.         Dim B As New Bitmap(Width, Height)
  467.         Dim G As Graphics = Graphics.FromImage(B)
  468.         G.SmoothingMode = SmoothingMode.HighQuality
  469.         Dim d As New Draw()
  470.         Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
  471.  
  472.         txtbox.TextAlign = TextAlignment
  473.  
  474.         G.Clear(Color.FromArgb(36, 40, 42))
  475.  
  476.         G.FillRectangle(New SolidBrush(Color.FromArgb(36, 40, 42)), ClientRectangle)
  477.         G.DrawRectangle(New Pen(Color.FromArgb(53, 57, 60)), ClientRectangle)
  478.  
  479.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  480.         G.Dispose() : B.Dispose()
  481.     End Sub
  482. End Class
  483.  
  484. Public Class BlackShadesNetTextBox : Inherits Control
  485.     Dim WithEvents txtbox As New TextBox
  486.  
  487. #Region " Control Help - Properties & Flicker Control "
  488.     Private _passmask As Boolean = False
  489.     Public Shadows Property UseSystemPasswordChar() As Boolean
  490.         Get
  491.             Return _passmask
  492.         End Get
  493.         Set(ByVal v As Boolean)
  494.             txtbox.UseSystemPasswordChar = UseSystemPasswordChar
  495.             _passmask = v
  496.             Invalidate()
  497.         End Set
  498.     End Property
  499.     Private _maxchars As Integer = 32767
  500.     Public Shadows Property MaxLength() As Integer
  501.         Get
  502.             Return _maxchars
  503.         End Get
  504.         Set(ByVal v As Integer)
  505.             _maxchars = v
  506.             txtbox.MaxLength = MaxLength
  507.             Invalidate()
  508.         End Set
  509.     End Property
  510.     Private _align As HorizontalAlignment
  511.     Public Shadows Property TextAlignment() As HorizontalAlignment
  512.         Get
  513.             Return _align
  514.         End Get
  515.         Set(ByVal v As HorizontalAlignment)
  516.             _align = v
  517.             Invalidate()
  518.         End Set
  519.     End Property
  520.  
  521.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  522.     End Sub
  523.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  524.         MyBase.OnTextChanged(e)
  525.         Invalidate()
  526.     End Sub
  527.     Protected Overrides Sub OnBackColorChanged(ByVal e As System.EventArgs)
  528.         MyBase.OnBackColorChanged(e)
  529.         txtbox.BackColor = BackColor
  530.         Invalidate()
  531.     End Sub
  532.     Protected Overrides Sub OnForeColorChanged(ByVal e As System.EventArgs)
  533.         MyBase.OnForeColorChanged(e)
  534.         txtbox.ForeColor = ForeColor
  535.         Invalidate()
  536.     End Sub
  537.     Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)
  538.         MyBase.OnFontChanged(e)
  539.         txtbox.Font = Font
  540.     End Sub
  541.     Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
  542.         MyBase.OnGotFocus(e)
  543.         txtbox.Focus()
  544.     End Sub
  545.     Sub TextChngTxtBox() Handles txtbox.TextChanged
  546.         Text = txtbox.Text
  547.     End Sub
  548.     Sub TextChng() Handles MyBase.TextChanged
  549.         txtbox.Text = Text
  550.     End Sub
  551.     Sub NewTextBox()
  552.         With txtbox
  553.             .Multiline = False
  554.             .BackColor = Color.FromArgb(43, 43, 43)
  555.             .ForeColor = ForeColor
  556.             .Text = String.Empty
  557.             .TextAlign = HorizontalAlignment.Center
  558.             .BorderStyle = BorderStyle.None
  559.             .Location = New Point(5, 4)
  560.             .Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  561.             .Size = New Size(Width - 10, Height - 11)
  562.             .UseSystemPasswordChar = UseSystemPasswordChar
  563.         End With
  564.  
  565.     End Sub
  566. #End Region
  567.  
  568.     Sub New()
  569.         MyBase.New()
  570.  
  571.         NewTextBox()
  572.         Controls.Add(txtbox)
  573.  
  574.         Text = ""
  575.         BackColor = Color.FromArgb(36, 40, 42)
  576.         ForeColor = Color.FromArgb(142, 152, 156)
  577.         Size = New Size(135, 35)
  578.         DoubleBuffered = True
  579.     End Sub
  580.  
  581.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  582.         Dim B As New Bitmap(Width, Height)
  583.         Dim G As Graphics = Graphics.FromImage(B)
  584.         G.SmoothingMode = SmoothingMode.HighQuality
  585.         Dim d As New Draw()
  586.         Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
  587.  
  588.         Height = txtbox.Height + 11
  589.         With txtbox
  590.             .Width = Width - 10
  591.             .TextAlign = TextAlignment
  592.             .UseSystemPasswordChar = UseSystemPasswordChar
  593.         End With
  594.  
  595.         G.Clear(Color.FromArgb(36, 40, 42))
  596.  
  597.         G.FillRectangle(New SolidBrush(Color.FromArgb(36, 40, 42)), ClientRectangle)
  598.         G.DrawRectangle(New Pen(Color.FromArgb(53, 57, 60)), ClientRectangle)
  599.  
  600.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  601.         G.Dispose() : B.Dispose()
  602.     End Sub
  603. End Class
  604.  
  605. Public Class BlackShadesNetRichTextBox : Inherits Control
  606.     Dim WithEvents txtbox As New RichTextBox
  607.  
  608. #Region " Control Help - Properties & Flicker Control "
  609.  
  610.  
  611.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  612.     End Sub
  613.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  614.         MyBase.OnTextChanged(e)
  615.         Invalidate()
  616.     End Sub
  617.     Protected Overrides Sub OnBackColorChanged(ByVal e As System.EventArgs)
  618.         MyBase.OnBackColorChanged(e)
  619.         txtbox.BackColor = BackColor
  620.         Invalidate()
  621.     End Sub
  622.     Protected Overrides Sub OnForeColorChanged(ByVal e As System.EventArgs)
  623.         MyBase.OnForeColorChanged(e)
  624.         txtbox.ForeColor = ForeColor
  625.         Invalidate()
  626.     End Sub
  627.     Protected Overrides Sub OnSizeChanged(ByVal e As System.EventArgs)
  628.         MyBase.OnSizeChanged(e)
  629.         txtbox.Size = New Size(Width - 10, Height - 11)
  630.     End Sub
  631.     Protected Overrides Sub OnFontChanged(ByVal e As System.EventArgs)
  632.         MyBase.OnFontChanged(e)
  633.         txtbox.Font = Font
  634.     End Sub
  635.     Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
  636.         MyBase.OnGotFocus(e)
  637.         txtbox.Focus()
  638.     End Sub
  639.     Sub TextChngTxtBox() Handles txtbox.TextChanged
  640.         Text = txtbox.Text
  641.     End Sub
  642.     Sub TextChng() Handles MyBase.TextChanged
  643.         txtbox.Text = Text
  644.     End Sub
  645.     Sub NewTextBox()
  646.         With txtbox
  647.             .Multiline = True
  648.             .BackColor = BackColor
  649.             .ForeColor = ForeColor
  650.             .Text = String.Empty
  651.             .BorderStyle = BorderStyle.None
  652.             .Location = New Point(3, 4)
  653.             .Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  654.             .Size = New Size(Width - 10, Height - 10)
  655.         End With
  656.         txtbox.Font = New Font("Trebuchet MS", 8.25F, FontStyle.Bold)
  657.     End Sub
  658. #End Region
  659.  
  660.     Sub New()
  661.         MyBase.New()
  662.  
  663.         NewTextBox()
  664.         Controls.Add(txtbox)
  665.  
  666.         Text = ""
  667.         BackColor = Color.FromArgb(36, 40, 42)
  668.         ForeColor = Color.FromArgb(142, 152, 156)
  669.         Size = New Size(135, 35)
  670.         DoubleBuffered = True
  671.     End Sub
  672.  
  673.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  674.         Dim B As New Bitmap(Width, Height)
  675.         Dim G As Graphics = Graphics.FromImage(B)
  676.         G.SmoothingMode = SmoothingMode.HighQuality
  677.         Dim d As New Draw()
  678.         Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
  679.  
  680.         G.Clear(Color.FromArgb(36, 40, 42))
  681.  
  682.         G.DrawRectangle(New Pen(Color.FromArgb(30, 33, 35), 2), ClientRectangle)
  683.         G.DrawLine(New Pen(Color.FromArgb(83, 90, 94)), Width - 1, 0, Width - 1, Height)
  684.         G.DrawLine(New Pen(Color.FromArgb(83, 90, 94)), 0, Height - 1, Width - 1, Height - 1)
  685.  
  686.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  687.         G.Dispose() : B.Dispose()
  688.     End Sub
  689. End Class
  690.  
  691. <DefaultEvent("CheckedChanged")> Public Class BlackShadesNetCheckBox : Inherits Control
  692.  
  693. #Region " Control Help - MouseState & Flicker Control"
  694.     Private State As MouseState = MouseState.None
  695.     Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
  696.         MyBase.OnMouseEnter(e)
  697.         State = MouseState.Over
  698.         Invalidate()
  699.     End Sub
  700.     Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
  701.         MyBase.OnMouseDown(e)
  702.         State = MouseState.Down
  703.         Invalidate()
  704.     End Sub
  705.     Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
  706.         MyBase.OnMouseLeave(e)
  707.         State = MouseState.None
  708.         Invalidate()
  709.     End Sub
  710.     Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
  711.         MyBase.OnMouseUp(e)
  712.         State = MouseState.Over
  713.         Invalidate()
  714.     End Sub
  715.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  716.     End Sub
  717.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  718.         MyBase.OnTextChanged(e)
  719.         Invalidate()
  720.     End Sub
  721.     Private _Checked As Boolean
  722.     Property Checked() As Boolean
  723.         Get
  724.             Return _Checked
  725.         End Get
  726.         Set(ByVal value As Boolean)
  727.             _Checked = value
  728.             Invalidate()
  729.         End Set
  730.     End Property
  731.     Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
  732.         MyBase.OnResize(e)
  733.         Height = 14
  734.     End Sub
  735.     Protected Overrides Sub OnClick(ByVal e As System.EventArgs)
  736.         _Checked = Not _Checked
  737.         RaiseEvent CheckedChanged(Me)
  738.         MyBase.OnClick(e)
  739.     End Sub
  740.     Event CheckedChanged(ByVal sender As Object)
  741. #End Region
  742.  
  743.     Sub New()
  744.         MyBase.New()
  745.         BackColor = Color.FromArgb(20, 20, 20)
  746.         ForeColor = Color.White
  747.         Size = New Size(145, 16)
  748.     End Sub
  749.  
  750.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  751.         Dim B As New Bitmap(Width, Height)
  752.         Dim G As Graphics = Graphics.FromImage(B)
  753.         Dim d As New Draw()
  754.  
  755.         Dim checkBoxRectangle As New Rectangle(0, 0, Height - 1, Height - 1)
  756.  
  757.         G.Clear(Color.FromArgb(42, 47, 49))
  758.  
  759.         Dim bodyGrad As New LinearGradientBrush(checkBoxRectangle, Color.FromArgb(36, 40, 42), Color.FromArgb(64, 71, 74), 90S)
  760.         G.FillRectangle(bodyGrad, bodyGrad.Rectangle)
  761.         G.DrawRectangle(New Pen(Color.FromArgb(42, 47, 49)), New Rectangle(1, 1, Height - 3, Height - 3))
  762.         G.DrawRectangle(New Pen(Color.FromArgb(102, 108, 112)), checkBoxRectangle)
  763.  
  764.  
  765.         If Checked Then
  766.             Dim chkPoly As Rectangle = New Rectangle(checkBoxRectangle.X + checkBoxRectangle.Width / 4, checkBoxRectangle.Y + checkBoxRectangle.Height / 4, checkBoxRectangle.Width \ 2, checkBoxRectangle.Height \ 2)
  767.             Dim Poly() As Point = {New Point(chkPoly.X, chkPoly.Y + chkPoly.Height \ 2), _
  768.                            New Point(chkPoly.X + chkPoly.Width \ 2, chkPoly.Y + chkPoly.Height), _
  769.                            New Point(chkPoly.X + chkPoly.Width, chkPoly.Y)}
  770.             G.SmoothingMode = SmoothingMode.HighQuality
  771.             Dim P1 As New Pen(Color.FromArgb(250, 255, 255, 255), 2)
  772.             Dim chkGrad As New LinearGradientBrush(chkPoly, Color.FromArgb(200, 200, 200), Color.FromArgb(255, 255, 255), 0S)
  773.             For i = 0 To Poly.Length - 2
  774.                 G.DrawLine(P1, Poly(i), Poly(i + 1))
  775.             Next
  776.         End If
  777.         G.DrawString(Text, Font, New SolidBrush(ForeColor), New Point(18, -1), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
  778.  
  779.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  780.         G.Dispose() : B.Dispose()
  781.  
  782.     End Sub
  783.  
  784. End Class
  785.  
  786. <DefaultEvent("CheckedChanged")> Public Class BlackShadesNetRadioButton : Inherits Control
  787.  
  788. #Region " Control Help - MouseState & Flicker Control"
  789.     Private R1 As Rectangle
  790.     Private G1 As LinearGradientBrush
  791.  
  792.     Private State As MouseState = MouseState.None
  793.     Protected Overrides Sub OnMouseEnter(ByVal e As System.EventArgs)
  794.         MyBase.OnMouseEnter(e)
  795.         State = MouseState.Over
  796.         Invalidate()
  797.     End Sub
  798.     Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
  799.         MyBase.OnMouseDown(e)
  800.         State = MouseState.Down
  801.         Invalidate()
  802.     End Sub
  803.     Protected Overrides Sub OnMouseLeave(ByVal e As System.EventArgs)
  804.         MyBase.OnMouseLeave(e)
  805.         State = MouseState.None
  806.         Invalidate()
  807.     End Sub
  808.     Protected Overrides Sub OnMouseUp(ByVal e As System.Windows.Forms.MouseEventArgs)
  809.         MyBase.OnMouseUp(e)
  810.         State = MouseState.Over
  811.         Invalidate()
  812.     End Sub
  813.     Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
  814.         MyBase.OnResize(e)
  815.         Height = 16
  816.     End Sub
  817.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  818.     End Sub
  819.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  820.         MyBase.OnTextChanged(e)
  821.         Invalidate()
  822.     End Sub
  823.     Private _Checked As Boolean
  824.     Property Checked() As Boolean
  825.         Get
  826.             Return _Checked
  827.         End Get
  828.         Set(ByVal value As Boolean)
  829.             _Checked = value
  830.             InvalidateControls()
  831.             RaiseEvent CheckedChanged(Me)
  832.             Invalidate()
  833.         End Set
  834.     End Property
  835.     Protected Overrides Sub OnClick(ByVal e As EventArgs)
  836.         If Not _Checked Then Checked = True
  837.         MyBase.OnClick(e)
  838.     End Sub
  839.     Event CheckedChanged(ByVal sender As Object)
  840.     Protected Overrides Sub OnCreateControl()
  841.         MyBase.OnCreateControl()
  842.         InvalidateControls()
  843.     End Sub
  844.     Private Sub InvalidateControls()
  845.         If Not IsHandleCreated OrElse Not _Checked Then Return
  846.  
  847.         For Each C As Control In Parent.Controls
  848.             If C IsNot Me AndAlso TypeOf C Is BlackShadesNetRadioButton Then
  849.                 DirectCast(C, BlackShadesNetRadioButton).Checked = False
  850.             End If
  851.         Next
  852.     End Sub
  853. #End Region
  854.  
  855.     Sub New()
  856.         MyBase.New()
  857.         BackColor = Color.FromArgb(42, 47, 49)
  858.         ForeColor = Color.White
  859.         Size = New Size(150, 16)
  860.     End Sub
  861.  
  862.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  863.         Dim B As New Bitmap(Width, Height)
  864.         Dim G As Graphics = Graphics.FromImage(B)
  865.         Dim d As New Draw()
  866.         Dim radioBtnRectangle = New Rectangle(0, 0, Height - 1, Height - 1)
  867.  
  868.         G.SmoothingMode = SmoothingMode.HighQuality
  869.         G.Clear(BackColor)
  870.  
  871.         Dim bgGrad As New LinearGradientBrush(radioBtnRectangle, Color.FromArgb(36, 40, 42), Color.FromArgb(66, 70, 72), 90S)
  872.         G.FillEllipse(bgGrad, radioBtnRectangle)
  873.  
  874.         G.DrawEllipse(New Pen(Color.FromArgb(44, 48, 50)), New Rectangle(1, 1, Height - 3, Height - 3))
  875.         G.DrawEllipse(New Pen(Color.FromArgb(102, 108, 112)), radioBtnRectangle)
  876.  
  877.         If Checked Then
  878.             Dim chkGrad As New LinearGradientBrush(New Rectangle(4, 4, Height - 9, Height - 8), Color.White, Color.Black, 90S)
  879.             G.FillEllipse(chkGrad, New Rectangle(4, 4, Height - 9, Height - 9))
  880.         End If
  881.  
  882.         G.DrawString(Text, Font, Brushes.White, New Point(18, 0), New StringFormat With {.Alignment = StringAlignment.Near, .LineAlignment = StringAlignment.Near})
  883.  
  884.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  885.         G.Dispose() : B.Dispose()
  886.     End Sub
  887.  
  888. End Class
  889.  
  890. Public Class BlackShadesNetGroupBox : Inherits ContainerControl
  891. #Region " Control Help - Properties & Flicker Control"
  892.     Protected Overrides Sub OnPaintBackground(ByVal pevent As System.Windows.Forms.PaintEventArgs)
  893.     End Sub
  894.     Protected Overrides Sub OnTextChanged(ByVal e As System.EventArgs)
  895.         MyBase.OnTextChanged(e)
  896.         Invalidate()
  897.     End Sub
  898. #End Region
  899.  
  900.     Sub New()
  901.         MyBase.New()
  902.         BackColor = Color.FromArgb(33, 33, 33)
  903.         Size = New Size(200, 100)
  904.     End Sub
  905.  
  906.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  907.         Dim B As New Bitmap(Width, Height)
  908.         Dim G As Graphics = Graphics.FromImage(B)
  909.  
  910.         G.SmoothingMode = SmoothingMode.HighSpeed
  911.         Const curve As Integer = 3
  912.         Dim ClientRectangle As New Rectangle(0, 0, Width - 1, Height - 1)
  913.         Dim TransparencyKey As Color = Me.ParentForm.TransparencyKey
  914.         Dim d As New Draw()
  915.         MyBase.OnPaint(e)
  916.  
  917.         G.Clear(Color.FromArgb(42, 47, 49))
  918.  
  919.  
  920.  
  921.         G.DrawPath(New Pen(Color.FromArgb(67, 75, 78)), d.RoundRect(New Rectangle(2, 7, Width - 5, Height - 9), curve))
  922.         Dim outerBorder As New LinearGradientBrush(ClientRectangle, Color.FromArgb(30, 32, 32), Color.Transparent, 90S)
  923.         G.DrawPath(New Pen(outerBorder), d.RoundRect(New Rectangle(1, 6, Width - 3, Height - 9), curve))
  924.         Dim innerBorder As New LinearGradientBrush(New Rectangle(3, 7, Width - 7, Height - 10), Color.Transparent, Color.FromArgb(30, 32, 32), 90S)
  925.         G.DrawPath(New Pen(innerBorder), d.RoundRect(New Rectangle(3, 7, Width - 7, Height - 10), curve))
  926.  
  927.         G.FillRectangle(New SolidBrush(Color.FromArgb(42, 47, 49)), New Rectangle(8, 0, Text.Length * 6, 11))
  928.  
  929.         G.DrawString(Text, Font, New SolidBrush(ForeColor), New Rectangle(8, 0, Width - 1, 11), New StringFormat With {.LineAlignment = StringAlignment.Center, .Alignment = StringAlignment.Near})
  930.  
  931.         e.Graphics.DrawImage(B.Clone(), 0, 0)
  932.         G.Dispose() : B.Dispose()
  933.     End Sub
  934. End Class
Add Comment
Please, Sign In to add comment