Imports Infragistics.Win
Private mouseEnteredElement As Boolean = False
Private mouseHoveringOnElement As Boolean = False
Protected Overrides Sub InitAppearance(ByRef appearance As AppearanceData, ByRef requestedProps As AppearancePropFlags)
MyBase.InitAppearance(appearance, requestedProps)
' マウスが要素の上にあるかどうかに基づいて BackColor を
' 設定します
If (Me.mouseHoveringOnElement) Then
appearance.BackColor = Color.Green
ElseIf (Me.mouseEnteredElement) Then
appearance.BackColor = Color.Red
Else
appearance.BackColor = Color.Transparent
End If
End Sub
Protected Overrides Sub OnMouseEnter()
Me.mouseEnteredElement = True
' UIElement の子を (色変更などのために) 再描画する必要がある場合に呼び出します
If Not Me.IsDrawing then
Me.Invalidate()
End If
End Sub
Protected Overrides Sub OnMouseHover()
Me.mouseHoveringOnElement = True
' UIElement の子を位置変更またはサイズ変更する必要がある場合に呼び出します
Me.DirtyChildElements()
End Sub
Protected Overrides Sub OnMouseLeave()
Me.mouseHoveringOnElement = False
Me.mouseEnteredElement = False
If Not Me.IsDrawing then
Me.Invalidate()
End If
End Sub
Protected Overrides ReadOnly Property WantsMouseHoverNotification() As Boolean
Get
Return True
End Get
End Property