'Declaration Protected Overrides Sub InitAppearance( _ ByRef appearance As AppearanceData, _ ByRef requestedProps As AppearancePropFlags _ )
protected override void InitAppearance( ref AppearanceData appearance, ref AppearancePropFlags requestedProps )
The main source of information for resolving the Infragistics.Win.AppearanceBase information for the ProgressBarFillUIElement is the IProgressBarInfo.FillAppearance.
Since the child ProgressFillTextUIElement must be positioned exactly as that of the TextElement for the ProgressBarUIElement, the Infragistics.Win.AppearanceBase.FontData, Infragistics.Win.AppearanceBase.TextTrimming, Infragistics.Win.AppearanceBase.TextHAlign and Infragistics.Win.AppearanceBase.TextVAlign properties cannot be honored on the FillAppearance. Instead, the resolved values of the IProgressBarInfo.Appearance are used.
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
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 ; }
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