This sample initializes the appearance of a UIElement based on the mouse position within the element. It also exemplifies the use of mouse hover notifications.
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)
' Set BackColor based on whether or not mouse is over
' the element.
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
' Call when sub UIElements need to simply be repainted (color change etc).
If Not Me.IsDrawing then
Me.Invalidate()
End If
End Sub
Protected Overrides Sub OnMouseHover()
Me.mouseHoveringOnElement = True
' Call when sub UIElements need to be repositioned or sized.
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
'Declaration
Protected Overrides Sub InitAppearance( _
ByRef As Infragistics.Win.AppearanceData, _
ByRef As Infragistics.Win.AppearancePropFlags _
)
using Infragistics.Win;
private bool mouseEnteredElement = false;
private bool mouseHoveringOnElement = false;
protected override void OnMouseHover()
{
this.mouseHoveringOnElement = true;
// Call when sub UIElements need to be repositioned or sized.
this.DirtyChildElements();
}
protected override bool WantsMouseHoverNotification
{
get
{
return true;
}
}
protected override void OnMouseEnter()
{
this.mouseEnteredElement = true;
// Call when sub UIElements need to simply be repainted (color change etc).
if (!this.IsDrawing)
this.Invalidate();
}
protected override void OnMouseLeave()
{
this.mouseHoveringOnElement = false;
this.mouseEnteredElement = false;
// Call when sub UIElements need to simply be repainted (color change etc).
if (!this.IsDrawing)
this.Invalidate();
}
protected override void InitAppearance(ref AppearanceData appearance, ref AppearancePropFlags requestedProps)
{
base.InitAppearance(ref appearance, ref requestedProps);
// Set BackColor based on whether or not mouse is over
// the element.
if(this.mouseHoveringOnElement)
appearance.BackColor = Color.Green;
else if(this.mouseEnteredElement)
appearance.BackColor = Color.Red;
else
appearance.BackColor = Color.Transparent ;
}
'Declaration
Protected Overrides Sub InitAppearance( _
ByRef As Infragistics.Win.AppearanceData, _
ByRef As Infragistics.Win.AppearancePropFlags _
)
Target Platforms: Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Server 2012, Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2