Class SkinButton
- Namespace
- VisioForge.Core.UI.MAUI.Skins
- Assembly
- VisioForge.Core.UI.MAUI.dll
A button control that extends VisioForge.Core.UI.MAUI.Skins.SkinIconElement with interactive state management. Automatically handles hover, pressed, and disabled visual states based on user interaction across all MAUI platforms (Windows, Android, iOS, macCatalyst).
public class SkinButton : SkinIconElement, INotifyPropertyChanged, IVisualTreeElement, IEffectControlProvider, IToolTipElement, IContextFlyoutElement, IAnimatable, IGestureController, IGestureRecognizers, IPropertyMapperView, IHotReloadableView, IReplaceableView, ISKCanvasView, IView, IElement, ITransform, ISKCanvasViewController, IViewController, IVisualElementController, IElementController, IDisposableInheritance
Implements
Inherited Members
Remarks
The SkinButton extends SkinIconElement with:
- Automatic state management (hover/pressed) based on pointer/touch events
- Platform-specific interaction handling (Windows: Pointer events only)
- Visual feedback for user interactions
Platform-specific behavior:
- Windows: Full hover and pressed state support via pointer events
- Android/iOS: Touch events handled by base SkinIconElement (no hover state)
Note: Currently, only Windows platform has active state management code. Android and iOS rely on the OnClickOrTouch event from the base class.
Constructors
SkinButton()
Initializes a new instance of the VisioForge.Core.UI.MAUI.Skins.SkinButton class. Sets up event handlers for interactive state management.
public SkinButton()Methods
Dispose(bool)
Releases all resources used by the VisioForge.Core.UI.MAUI.Skins.SkinButton.
protected override void Dispose(bool disposing)Parameters
Remarks
This method extends the base VisioForge.Core.UI.MAUI.Skins.SkinIconElement disposal to include button-specific cleanup:
- Unsubscribes from HandlerChanged and HandlerChanging events
- On Windows: Unsubscribes from all pointer events (Entered, Exited, Released, Pressed)
- Releases platform view references
After cleanup, calls the base class Dispose to complete resource cleanup. The method is safe to call multiple times.