Table of Contents

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, IDisposable

Inheritance

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

disposing bool

true if disposing managed resources; otherwise, false.

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.