Advertisement
SEMO_Pa3x

Transparent Label by SMP3

May 20th, 2016
236
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 5.32 KB | None | 0 0
  1.  
  2. '-----------------------------------
  3. ' Transparent Label By: SMP3
  4. ' Uploader: SEMO.Pa3x
  5. '-----------------------------------
  6.  
  7. Imports System.ComponentModel
  8.  
  9. Public Class TransparentLabel
  10.  
  11.     Inherits Control
  12.  
  13. #Region " Fields "
  14.     Dim m_text As String
  15.     Dim m_style As Integer
  16.     Dim m_opacity As Double
  17.     Dim m_Width As Integer
  18.     Dim m_Height As Integer
  19.     Dim m_Color As Color
  20.     Dim m_opacityText As Double
  21.     Dim m_fillColor As Color = Color.Transparent
  22. #End Region
  23.  
  24. #Region "Enum"
  25.     Enum StyleX
  26.         Vertical = 270
  27.         Horizontal = 90
  28.         Normal = 0
  29.     End Enum
  30. #End Region
  31.  
  32. #Region " Constructor "
  33.  
  34.     Public Sub New()
  35.  
  36.         SetStyle(ControlStyles.SupportsTransparentBackColor, True)
  37.         UpdateStyles()
  38.         m_opacity = 1.0R
  39.         m_opacityText = 1.0R
  40.  
  41.     End Sub
  42.  
  43. #End Region
  44.  
  45. #Region " Property "
  46.     Public Overrides Property Font() As System.Drawing.Font
  47.         Get
  48.  
  49.             Return MyBase.Font
  50.             Refresh()
  51.         End Get
  52.         Set(ByVal value As System.Drawing.Font)
  53.             MyBase.Font = value
  54.            
  55.             DoUpdate()
  56.  
  57.         End Set
  58.     End Property
  59.     Property Style() As StyleX
  60.         Get
  61.             Style = m_style
  62.             Refresh()
  63.  
  64.         End Get
  65.         Set(ByVal value As StyleX)
  66.             m_style = value
  67.             DoUpdate()
  68.  
  69.         End Set
  70.     End Property
  71.     <System.ComponentModel.DefaultValue(0.1R)> _
  72.     <System.ComponentModel.TypeConverter(GetType(OpacityConverter))> _
  73.     <System.ComponentModel.Category("Panel Style")> _
  74.     Public Property Opacity() As Double
  75.         Get
  76.             Return m_opacity
  77.         End Get
  78.         Set(ByVal value As Double)
  79.             m_opacity = value
  80.             UpdateStyles()
  81.             Refresh()
  82.         End Set
  83.     End Property
  84.     <System.ComponentModel.DefaultValue(1.0R)> _
  85.     <System.ComponentModel.TypeConverter(GetType(OpacityConverter))> _
  86.     <System.ComponentModel.Category("Panel Style")> _
  87.     Public Property TextOpacity() As Double
  88.         Get
  89.             Return m_opacityText
  90.         End Get
  91.         Set(ByVal value As Double)
  92.             m_opacityText = value
  93.             UpdateStyles()
  94.             Refresh()
  95.         End Set
  96.     End Property
  97.     Public Overrides Property Text() As String
  98.         Get
  99.             Text = m_text
  100.         End Get
  101.  
  102.         Set(ByVal value As String)
  103.             m_text = value
  104.             Refresh()
  105.         End Set
  106.     End Property
  107.  
  108.     <DefaultValue(GetType(Color), "Transparent")> Overrides Property ForeColor() As System.Drawing.Color
  109.         Get
  110.  
  111.             ForeColor = m_Color
  112.  
  113.         End Get
  114.         Set(ByVal value As System.Drawing.Color)
  115.             m_Color = value
  116.             Invalidate()
  117.         End Set
  118.     End Property
  119.  
  120.     <DefaultValue(GetType(Color), "Transparent")> Overrides Property BackColor() As System.Drawing.Color
  121.         Get
  122.             BackColor = m_fillColor
  123.         End Get
  124.         Set(ByVal value As System.Drawing.Color)
  125.             m_fillColor = value
  126.             Invalidate()
  127.         End Set
  128.     End Property
  129.     <Browsable(False), EditorBrowsable(EditorBrowsableState.Never)> _
  130.     Public Overrides Property BackgroundImage() As System.Drawing.Image
  131.         Get
  132.             Return Nothing
  133.         End Get
  134.         Set(ByVal value As System.Drawing.Image)
  135.             MyBase.BackgroundImage = value
  136.         End Set
  137.     End Property
  138.     <Browsable(False), EditorBrowsable(EditorBrowsableState.Never)> _
  139.     Public Overrides Property BackgroundImageLayout() As System.Windows.Forms.ImageLayout
  140.         Get
  141.             Return MyBase.BackgroundImageLayout
  142.         End Get
  143.         Set(ByVal value As System.Windows.Forms.ImageLayout)
  144.             MyBase.BackgroundImageLayout = value
  145.         End Set
  146.     End Property
  147.  
  148.  
  149. #End Region
  150.  
  151. #Region " Event "
  152.     Protected Sub DoUpdate()
  153.         Refresh()
  154.         UpdateStyles()
  155.         Invalidate()
  156.     End Sub
  157.  
  158.     Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams
  159.         Get
  160.             Dim ExStyleX As CreateParams = MyBase.CreateParams()
  161.             ExStyleX.ExStyle = ExStyleX.ExStyle Or &H20
  162.             Return ExStyleX
  163.  
  164.         End Get
  165.     End Property
  166.     Protected Overrides Sub OnPaintBackground(ByVal e As System.Windows.Forms.PaintEventArgs)
  167.         e.Graphics.FillRectangle(New SolidBrush(Color.FromArgb(Opacity * 255, m_fillColor)), ClientRectangle)
  168.  
  169.     End Sub
  170.     Protected Overrides Sub [Select](directed As Boolean, forward As Boolean)
  171.         'MyBase.[Select](directed, forward)
  172.         DoUpdate()
  173.  
  174.     End Sub
  175.     Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
  176.         MyBase.OnPaint(e)
  177.  
  178.         m_Height = Size.Height
  179.         m_Width = Size.Width
  180.         Dim G As Graphics
  181.         G = e.Graphics
  182.         Dim y As Single = m_Height
  183.         Dim x As Single = m_Width
  184.         Select Case m_style
  185.             Case 270
  186.                 G.TranslateTransform(0, y)
  187.                 G.RotateTransform(270)
  188.             Case 90
  189.                 G.TranslateTransform(x, 0)
  190.                 G.RotateTransform(90)
  191.         End Select
  192.  
  193.         Dim NSB As New SolidBrush(Color.FromArgb(TextOpacity * 255, m_Color))
  194.         G.DrawString(m_text, Font, NSB, 1, 1)
  195.  
  196.  
  197.     End Sub
  198. #End Region
  199.  
  200. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement