Элемент управления .Net native Label
не имеет свойства Opacity
, поэтому вам необходимо:
- Создать собственный пользовательский элемент управления
Label
. - Создатьсвойство непрозрачности внутри него.
- Переопределите метод
OnPaintBackground
этой новой пользовательской метки.
Вот один из созданных мной:
Public Class OpacityLabel
Inherits Label
Public Sub New()
Me.DoubleBuffered = True
End Sub
Private _opacity As Integer = 255
<System.ComponentModel.DefaultValue(255)>
Public Property Opacity As Integer
Get
Return _opacity
End Get
Set(value As Integer)
_opacity = Math.Max(Math.Min(value, 255), 0)
Invalidate()
End Set
End Property
Protected Overrides Sub OnPaintBackground(e As PaintEventArgs)
ButtonRenderer.DrawParentBackground(e.Graphics, e.ClipRectangle, Me)
Dim tColor As Color = Color.FromArgb(_opacity, Me.BackColor)
If (tColor.A < 255 AndAlso tColor.A >= 0) Then
Using solidBrush As Brush = New System.Drawing.SolidBrush(tColor)
e.Graphics.FillRectangle(solidBrush, e.ClipRectangle)
End Using
Else
Using solidBrush As Brush = New System.Drawing.SolidBrush(Me.BackColor)
e.Graphics.FillRectangle(solidBrush, e.ClipRectangle)
End Using
End If
End Sub
End Class
Создайте его. Создайте свой проект. Поместите его в свою форму. Измените
BackColor
на то, что вы хотите. Установите для свойства
Opacity
значение от 0 до 255.