| Лэйбл с тенью |
|
Автор: Артём Кривокрисенко Imports System.Drawing.Color Public Class ShadowLabel 'Унаследуем класс Label. Inherits System.Windows.Forms.Label 'Объявим несколько приватных переменных (для свойств) Private v_ShadowColor As System.Drawing.Color = Green Private v_ShadowSize As Int32 = 1 Private v_ShadowStep As Int32 = 1 #Region " Windows Form Designer generated code " Public Sub New() MyBase.New() InitializeComponent() End Sub Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (components Is Nothing) Then components.Dispose() End If End If MyBase.Dispose(disposing) End Sub Private components As System.ComponentModel.IContainer <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() Me.Name = "ShadowLabel" End Sub #End Region 'Установка/считывание свойства ShadowColor (цвет тени) Public Property ShadowColor() As System.Drawing.Color Get ShadowColor = v_ShadowColor End Get Set(ByVal Value As System.Drawing.Color) v_ShadowColor = Value 'Перерисуем лейбл MyBase.Refresh() End Set End Property 'Установка/чтение свойства ShadowSize (размер тени) Public Property ShadowSize() As Int32 Get ShadowSize = v_ShadowSize End Get Set(ByVal Value As Int32) If Value >= 0 Then v_ShadowSize = Value MyBase.Refresh() End If End Set End Property 'Смещение тени Public Property ShadowStep() As Int32 Get ShadowStep = v_ShadowStep End Get Set(ByVal Value As Int32) If Value >= 0 Then v_ShadowStep = Value MyBase.Refresh() End If End Set End Property Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs) Dim i As Int32 'Очистим лейбл e.Graphics.Clear(MyBase.BackColor) 'Отрисуем тень нужное кол-во раз For i = v_ShadowSize To 1 Step -1 e.Graphics.DrawString(MyBase.Text, MyBase.Font, New SolidBrush(v_ShadowColor), New RectangleF(i * v_ShadowStep, i * v_ShadowStep, MyBase.Width, MyBase.Height)) Next i Отрисуем(текст) e.Graphics.DrawString(MyBase.Text, MyBase.Font, New SolidBrush(MyBase.ForeColor), New RectangleF(0, 0, MyBase.Width, MyBase.Height)) End Sub End Class
Источник: http://www.vbnet.ru/ |