VisualElement Class

Definition

An Element that occupies an area on the screen, has a visual appearance, and can obtain touch input.

public ref class VisualElement : Microsoft::Maui::Controls::NavigableElement, Microsoft::Maui::Controls::IAnimatable, Microsoft::Maui::Controls::IVisualElementController, Microsoft::Maui::IView
public class VisualElement : Microsoft.Maui.Controls.NavigableElement, Microsoft.Maui.Controls.IAnimatable, Microsoft.Maui.Controls.IVisualElementController, Microsoft.Maui.IView
type VisualElement = class
    inherit NavigableElement
    interface IAnimatable
    interface IVisualElementController
    interface IElementController
    interface IView
    interface IElement
    interface ITransform
Public Class VisualElement
Inherits NavigableElement
Implements IAnimatable, IView, IVisualElementController
Inheritance
Derived
Implements

Remarks

The base class for most Microsoft.Maui.Controls on-screen elements. Provides most properties, events, and methods for presenting an item on screen.

Constructors

VisualElement()

Initializes a new instance of the VisualElement class.

Fields

AnchorXProperty

Bindable property for AnchorX.

AnchorYProperty

Bindable property for AnchorY.

BackgroundColorProperty

Bindable property for BackgroundColor.

BackgroundProperty

Bindable property for Background.

BehaviorsProperty

Bindable property for Behaviors.

ClipProperty

Bindable property for Clip.

ControlsVisualElementMapper
FlowDirectionProperty

Bindable property for FlowDirection.

HeightProperty

Bindable property for Height.

HeightRequestProperty

Bindable property for HeightRequest.

InputTransparentProperty

Bindable property for InputTransparent.

IsEnabledProperty

Bindable property for IsEnabled.

IsFocusedProperty

Bindable property for IsFocused.

IsFocusedPropertyKey

Bindable property for IsFocused.

IsVisibleProperty

Bindable property for IsVisible.

MaximumHeightRequestProperty

Bindable property for MaximumHeightRequest.

MaximumWidthRequestProperty

Bindable property for MaximumWidthRequest.

MinimumHeightRequestProperty

Bindable property for MinimumHeightRequest.

MinimumWidthRequestProperty

Bindable property for MinimumWidthRequest.

NavigationProperty

Bindable property for Navigation.

OpacityProperty

Bindable property for Opacity.

RotationProperty

Bindable property for Rotation.

RotationXProperty

Bindable property for RotationX.

RotationYProperty

Bindable property for RotationY.

ScaleProperty

Bindable property for Scale.

ScaleXProperty

Bindable property for ScaleX.

ScaleYProperty

Bindable property for ScaleY.

ShadowProperty

Bindable property for Shadow.

StyleProperty

Bindable property for Style.

TranslationXProperty

Bindable property for TranslationX.

TranslationYProperty

Bindable property for TranslationY.

TriggersProperty

Bindable property for Triggers.

VisualProperty

Bindable property for Visual.

WidthProperty

Bindable property for Width.

WidthRequestProperty

Bindable property for WidthRequest.

WindowProperty

Bindable property for Window.

XProperty

Bindable property for X.

YProperty

Bindable property for Y.

ZIndexProperty

Bindable property for ZIndex.

Properties

AnchorX

Gets or sets the X component of the center point for any transform operation, relative to the bounds of the element. This is a bindable property.

AnchorY

Gets or sets the Y component of the center point for any transform operation, relative to the bounds of the element. This is a bindable property.

AutomationId

Gets or sets a value that allows the automation framework to find and interact with this element.

(Inherited from Element)
Background

Gets or sets the Brush which will be used to fill the background of an element. This is a bindable property.

BackgroundColor

Gets or sets the Color which will fill the background of an element. This is a bindable property.

Batched

Gets a value that indicates there are batched changes done for this element.

Behaviors

Gets the list of Behavior objects associated to this element. This is a read-only bindable property.

BindingContext

Gets or sets an object that contains the properties that will be targeted by the bound properties that belong to this BindableObject. This is a bindable property.

(Inherited from BindableObject)
Bounds

Gets the bounds of the element in device-independent units.

class

Gets or sets the style classes for the element.

(Inherited from NavigableElement)
ClassId

Gets or sets a value used to identify a collection of semantically similar elements.

(Inherited from Element)
Clip

Specifies the clipping region for an element. This is a bindable property.

DesiredSize

Gets the size that this element computed during the measure pass of the layout process.

DisableLayout

Gets a value that indicates that layout for this element is disabled.

Dispatcher

Gets the dispatcher that was available when this bindable object was created, otherwise tries to find the nearest available dispatcher (probably the window's/app's).

(Inherited from BindableObject)
EffectControlProvider

For internal use by .NET MAUI.

(Inherited from Element)
Effects

Gets or sets the styles and properties that will be applied to the element during runtime.

(Inherited from Element)
FlowDirection

Gets or sets the layout flow direction. This is a bindable property.

Frame

Gets or sets the frame this element resides in on screen.

Handler

Gets or sets the IViewHandler associated to this element.

Height

Gets the current rendered height of this element. This is a read-only bindable property.

HeightRequest

Gets or sets the desired height override of this element. This is a bindable property.

Id

Gets a value that can be used to uniquely identify an element throughout the run of your application.

(Inherited from Element)
InputTransparent

Gets or sets a value indicating whether this element responds to hit testing during user interaction. This is a bindable property.

IsEnabled

Gets or sets a value indicating whether this element is enabled in the user interface. This is a bindable property.

IsEnabledCore

This value represents the cumulative IsEnabled value. All types that override this property need to also invoke the RefreshIsEnabledProperty() method if the value will change.

IsFocused

Gets a value indicating whether this element is focused currently. This is a bindable property.

IsInPlatformLayout

Gets or sets a value that indicates that this element is currently going through the platform layout cycle.

IsLoaded

Indicates if an element is connected to the main object tree.

IsPlatformEnabled

Gets or sets a value that indicates whether this elements's platform equivalent element is enabled.

IsPlatformStateConsistent

Gets or sets a value that indicates that this element is currently consistent with the platform equivalent element state.

IsVisible

Gets or sets a value that determines whether this element will be visible on screen and take up space in layouts. This is a bindable property.

LogicalChildren
Obsolete.
(Inherited from Element)
MaximumHeightRequest

Gets or sets the maximum height the element will request during layout. This is a bindable property.

MaximumWidthRequest

Gets or sets the maximum width the element will request during layout. This is a bindable property.

MinimumHeightRequest

Gets or sets the minimum height the element will request during layout. This is a bindable property.

MinimumWidthRequest

Gets or sets the minimum width the element will request during layout. This is a bindable property.

Navigation

Gets the object responsible for handling stack-based navigation.

(Inherited from NavigableElement)
NavigationProxy

Gets the cast of Navigation to a NavigationProxy.

(Inherited from NavigableElement)
Opacity

Gets or sets the opacity value applied to the element when it is rendered. The range of this value is 0 to 1; values outside this range will be set to the nearest valid value. This is a bindable property.

Parent

Gets or sets the parent Element of this element.

(Inherited from Element)
RealParent

For internal use by .NET MAUI.

(Inherited from Element)
Resources

Gets or sets the local resource dictionary.

Rotation

Gets or sets the rotation (in degrees) about the Z-axis (affine rotation) when the element is rendered. This is a bindable property.

RotationX

Gets or sets the rotation (in degrees) about the X-axis (perspective rotation) when the element is rendered. This is a bindable property.

RotationY

Gets or sets the rotation (in degrees) about the Y-axis (perspective rotation) when the element is rendered. This is a bindable property.

Scale

Gets or sets the scale factor applied to the element. This is a bindable property.

ScaleX

Gets or sets a scale value to apply to the X direction. This is a bindable property.

ScaleY

Gets or sets a scale value to apply to the Y direction. This is a bindable property.

Shadow

Gets or sets the shadow effect cast by the element. This is a bindable property.

Style

Gets or sets the unique Style for this element.

(Inherited from NavigableElement)
StyleClass

Gets or sets the style classes for the element.

(Inherited from NavigableElement)
StyleId

Gets or sets a user defined value to uniquely identify the element.

(Inherited from Element)
TranslationX

Gets or sets the X translation delta of the element. This is a bindable property.

TranslationY

Gets or sets the Y translation delta of the element. This is a bindable property.

Triggers

Gets the list of TriggerBase objects associated to this element. This is a read-only bindable property.

Visual

Gets or sets a IVisual implementation that overrides the visual appearance of an element. This is a bindable property.

Width

Gets the current width of this element. This is a read-only bindable property.

WidthRequest

Gets or sets the desired width override of this element. This is a bindable property.

Window

Gets the Window that is associated with an element. This is a read-only bindable property.

X

Gets the current X position of this element. This is a read-only bindable property.

Y

Gets the current Y position of this element. This is a read-only bindable property.

ZIndex

Gets or sets the front-to-back z-index of an element within a layout. This is a bindable property.

Methods

AddLogicalChild(Element)

Adds an Element to the logical children.

(Inherited from Element)
ApplyBindings()

Applies all the current bindings to BindingContext.

(Inherited from BindableObject)
Arrange(Rect)

Positions child objects and determines a size for an element.

ArrangeOverride(Rect)

Allows subclasses to implement custom Arrange logic during a controls layout pass.

BatchBegin()

Signals the start of a batch of changes to the elements properties. This can benefit performance if a bigger number of property values are changed.

BatchCommit()

Signals the end of a batch of commands to the element and that those commands should now be committed.

ChangeVisualState()

Changes the current visual state based on this elements current property values.

ClearLogicalChildren()

Removes all child Elements.

(Inherited from Element)
ClearValue(BindableProperty)

Clears any value that is previously set for a bindable property.

(Inherited from BindableObject)
ClearValue(BindablePropertyKey)

Clears any value that is previously set for a bindable property, identified by its key.

(Inherited from BindableObject)
CoerceValue(BindableProperty)

Coerces the value of the specified bindable property. This is done by invoking BindableProperty.CoerceValueDelegate of the specified bindable property.

(Inherited from BindableObject)
CoerceValue(BindablePropertyKey)

Coerces the value of the specified bindable property. This is done by invoking BindableProperty.CoerceValueDelegate of the specified bindable property.

(Inherited from BindableObject)
EffectIsAttached(String)

For internal use by .NET MAUI.

(Inherited from Element)
Finalize()

Frees all resources associated with the handle.

FindByName(String)

Returns the element that has the specified name.

(Inherited from Element)
Focus()

Attempts to set focus to this element.

GetValue(BindableProperty)

Returns the value that is contained in the given bindable property.

(Inherited from BindableObject)
InsertLogicalChild(Int32, Element)

Inserts an Element to the logical children at the specified index.

(Inherited from Element)
InvalidateMeasure()

Marks the current measure of an element as invalidated.

InvalidateMeasureNonVirtual(InvalidationTrigger)

Invalidates the measure of an element.

InvalidateMeasureOverride()

Provides a way to allow subclasses (e.g., Layout) to override InvalidateMeasure() even though the interface has to be explicitly implemented to avoid conflict with the InvalidateMeasure() method.

IsSet(BindableProperty)

Determines whether or not a bindable property exists and has a value set.

(Inherited from BindableObject)
Layout(Rect)

Updates the bounds of the element during the layout cycle.

MapBackgroundColor(IViewHandler, IView)
MapBackgroundImageSource(IViewHandler, IView)
Measure(Double, Double, MeasureFlags)
Obsolete.

Returns the minimum size that an element needs in order to be displayed on the device.

Measure(Double, Double)

Returns the minimum size that an element needs in order to be displayed on the device. Margins are excluded from the measurement, but returned with the size. It is not recommended to call this method outside of the MeasureOverride pass on the parent element.

MeasureOverride(Double, Double)

Allows subclasses to implement custom Measure logic during a controls measure pass.

OnBindingContextChanged()

Invoked when the binding context of this element has changed.

OnChildAdded(Element)

Invoked when a child object is added to this element.

OnChildRemoved(Element, Int32)

Invoked when a child object is removed from this element.

OnChildrenReordered()

Raises the ChildrenReordered event.

OnHandlerChanged()

When overridden in a derived class, should raise the HandlerChanged event.

(Inherited from Element)
OnHandlerChanging(HandlerChangingEventArgs)

When overridden in a derived class, should raise the HandlerChanging event.

(Inherited from Element)
OnMeasure(Double, Double)
Obsolete.

Method that is called when a layout measurement happens.

OnParentChanged()

When overridden in a derived class, should raise the ParentChanged event.

(Inherited from Element)
OnParentChanging(ParentChangingEventArgs)

When overridden in a derived class, should raise the ParentChanging event.

(Inherited from Element)
OnParentSet()

Raises the (internal) ParentSet event.

(Inherited from NavigableElement)
OnPropertyChanged(String)

Method that is called when a bound property is changed.

(Inherited from Element)
OnPropertyChanging(String)

Raises the PropertyChanging event.

(Inherited from BindableObject)
OnSizeAllocated(Double, Double)

Method that is called when the size of the element is set during a layout cycle. Implement this method to add class handling for this event.

PlatformSizeChanged()

Signals that the platform equivalent element for this element's size has changed and a new layout cycle might be needed.

RefreshIsEnabledProperty()

This method must always be called if some event occurs and the value of the IsEnabledCore property will change.

RemoveBinding(BindableProperty)

Removes a previously set binding from a bindable property.

(Inherited from BindableObject)
RemoveDynamicResource(BindableProperty)

Removes a previously set dynamic resource.

(Inherited from Element)
RemoveLogicalChild(Element)

Removes the first occurrence of a specific Element from the logical children.

(Inherited from Element)
SetBinding(BindableProperty, BindingBase)

Assigns a binding to a bindable property.

(Inherited from BindableObject)
SetDynamicResource(BindableProperty, String)

Sets the BindableProperty property of this element to be updated via the DynamicResource with the provided key.

(Inherited from Element)
SetValue(BindableProperty, Object)

Sets the value of the specified bindable property.

(Inherited from BindableObject)
SetValue(BindablePropertyKey, Object)

Sets the value of the specified bindable property.

(Inherited from BindableObject)
SetValueFromRenderer(BindableProperty, Object)

For internal use by .NET MAUI.

(Inherited from Element)
SetValueFromRenderer(BindablePropertyKey, Object)

For internal use by .NET MAUI.

(Inherited from Element)
SizeAllocated(Double, Double)

Method that is called during a layout cycle to signal the start of a sub-tree layout.

UnapplyBindings()

Removes all current bindings from the current context.

(Inherited from BindableObject)
Unfocus()

Unsets keyboard focus on this element.

Events

BatchCommitted

Occurs when a batch of property changes have been committed by calling BatchCommit().

BindingContextChanged

Occurs when the value of the BindingContext property changes.

(Inherited from BindableObject)
ChildAdded

Raised whenever a child element is added to the element.

(Inherited from Element)
ChildRemoved

Raised whenever a child element is removed from the element.

(Inherited from Element)
ChildrenReordered

Occurs when the order of this element's children changes.

DescendantAdded

Raised whenever a child element is added to the element's subtree.

(Inherited from Element)
DescendantRemoved

Raised whenever a child element is removed from the elements subtree.

(Inherited from Element)
FocusChangeRequested
Obsolete.

Occurs when a focus change is requested.

Focused

Occurs when this element is focused.

HandlerChanged

Raised whenever the element's handler has changed.

(Inherited from Element)
HandlerChanging

Raised whenever the element's handler starts to change.

(Inherited from Element)
Loaded

Occurs when an element has been constructed and added to the platform visual tree.

MeasureInvalidated

Occurs when the current measure of an element has been invalidated.

ParentChanged

Raised whenever the element's parent has changed.

(Inherited from Element)
ParentChanging

Raised whenever the element's starts to change.

(Inherited from Element)
PropertyChanged

Occurs when a property value changes.

(Inherited from BindableObject)
PropertyChanging

Occurs when a property value is changing.

(Inherited from BindableObject)
SizeChanged

Occurs when the size of an element changed.

Unfocused

Occurs when this element is unfocused.

Unloaded

Occurs when an element is no longer connected to the platform visual tree.

Explicit Interface Implementations

IContextFlyoutElement.ContextFlyout

Gets the ContextFlyout for the view. Menu flyouts, menu flyout subitems, and menu flyout separators can be added to the context flyout.

(Inherited from Element)
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) (Inherited from BindableObject)
IEffectControlProvider.RegisterEffect(Effect)

Registers the specified effect to this element.

(Inherited from Element)
IElement.Handler

Gets or sets the View Handler of the Element.

IElement.Parent

Gets the Parent of the Element.

(Inherited from Element)
IElementController.Descendants()

For internal use by .NET MAUI.

(Inherited from Element)
IElementController.LogicalChildren

For internal use by .NET MAUI.

(Inherited from Element)
IElementController.SetValueFromRenderer(BindableProperty, Object)

For internal use by .NET MAUI.

(Inherited from Element)
INameScope.RegisterName(String, Object)

For internal use by .NET MAUI.

(Inherited from Element)
INameScope.UnregisterName(String)

For internal use by .NET MAUI.

(Inherited from Element)
IToolTipElement.ToolTip

Represents a small rectangular pop-up window that displays a brief description of a view's purpose when the user rests the pointer on the view.

(Inherited from Element)
IView.Arrange(Rect)

Positions child elements and determines a size for an Element.

IView.Background

Gets the paint which will fill the background of a View.

IView.Clip

Gets the Path used to define the outline of the contents of a View.

IView.FlowDirection

Direction in which the UI elements are scanned by the eye

IView.Height

Gets the specified height of the IView.

IView.HorizontalLayoutAlignment

Determines the horizontal aspect of this element's arrangement in a container

IView.InvalidateArrange()

Method that is called to invalidate the layout of this View.

IView.InvalidateMeasure()

Signals that the current measure value of this View is no longer valid and must be recomputed during the next measure pass.

IView.IsFocused

Gets a value indicating whether this View is focused currently.

IView.Margin

The Margin represents the distance between an view and its adjacent views.

IView.MaximumHeight

Gets the specified maximum height constraint of the IView, between zero and double.PositiveInfinity.

IView.MaximumWidth

Gets the specified maximum width constraint of the IView, between zero and double.PositiveInfinity.

IView.Measure(Double, Double)

Updates the size of an View.

IView.MinimumHeight

Gets the specified minimum height constraint of the IView, between zero and double.PositiveInfinity.

IView.MinimumWidth

Gets the specified minimum width constraint of the IView, between zero and double.PositiveInfinity.

IView.Semantics

Adds semantics to every View for accessibility

IView.Shadow

Paints a shadow around the target View.

IView.VerticalLayoutAlignment

Determines the vertical aspect of this element's arrangement in a container

IView.Visibility

Gets a value that determines whether this View should be part of the visual tree or not.

IView.Width

Gets the specified width of the IView.

IVisualElementController.EffectiveFlowDirection

For internal use by .NET MAUI.

IVisualElementController.InvalidateMeasure(InvalidationTrigger)

For internal use by .NET MAUI.

IVisualTreeElement.GetVisualChildren()

Gets a readonly list of the element's visual children.

(Inherited from Element)
IVisualTreeElement.GetVisualParent()

Gets the element's visual parent.

(Inherited from Element)

Extension Methods

AbortAnimation(IAnimatable, String)

Stops the animation.

Animate(IAnimatable, String, Animation, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

Animate(IAnimatable, String, Action<Double>, Double, Double, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

Animate(IAnimatable, String, Action<Double>, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

Sets the specified parameters and starts the animation.

Animate<T>(IAnimatable, String, Func<Double,T>, Action<T>, UInt32, UInt32, Easing, Action<T,Boolean>, Func<Boolean>, IAnimationManager)

Sets the specified parameters and starts the animation.

AnimateKinetic(IAnimatable, String, Func<Double,Double,Boolean>, Double, Double, Action, IAnimationManager)

Sets the specified parameters and starts the kinetic animation.

AnimationIsRunning(IAnimatable, String)

Returns a Boolean value that indicates whether or not the animation that is specified by handle is running.

Batch(IAnimatable)
GetPropertyIfSet<T>(BindableObject, BindableProperty, T)
SetAppTheme<T>(BindableObject, BindableProperty, T, T)
SetAppThemeColor(BindableObject, BindableProperty, Color, Color)
SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)

Creates and applies a binding to a property.

SetBinding<TSource,TProperty>(BindableObject, BindableProperty, Func<TSource,TProperty>, BindingMode, IValueConverter, Object, String, Object, Object, Object)

Creates a binding between a property on the source object and a property on the target object.

FindByName<T>(Element, String)
CancelAnimations(VisualElement)

Aborts all animations (e.g. LayoutTo, TranslateTo, ScaleTo, etc.) on the view element.

FadeTo(VisualElement, Double, UInt32, Easing)

Returns a task that performs the fade that is described by the opacity, length, and easing parameters.

LayoutTo(VisualElement, Rect, UInt32, Easing) Returns a task that eases the bounds of the VisualElement that is specified by the view to the rectangle that is specified by the bounds parameter.
RelRotateTo(VisualElement, Double, UInt32, Easing)

Rotates the VisualElement that is specified by view from its current rotation by drotation.

RelScaleTo(VisualElement, Double, UInt32, Easing)

Returns a task that scales the VisualElement that is specified by view from its current scale to dscale.

RotateTo(VisualElement, Double, UInt32, Easing)

Returns a task that rotates the VisualElement that is specified by view that is described by the rotation, length, and easing parameters.

RotateXTo(VisualElement, Double, UInt32, Easing)

Returns a task that skews the X axis of the the VisualElement that is specified by view by rotation, taking time length and using easing.

RotateYTo(VisualElement, Double, UInt32, Easing)

Returns a task that skews the Y axis of the the VisualElement that is specified by view by rotation, taking time length and using easing.

ScaleTo(VisualElement, Double, UInt32, Easing)

Returns a task that scales the VisualElement that is specified by view to the absolute scale factor scale.

ScaleXTo(VisualElement, Double, UInt32, Easing)

Returns a task that scales the X axis of the the VisualElement that is specified by view to the absolute scale factor scale.

ScaleYTo(VisualElement, Double, UInt32, Easing)

Returns a task that scales the Y axis of the the VisualElement that is specified by view to the absolute scale factor scale.

TranslateTo(VisualElement, Double, Double, UInt32, Easing)

Animates an elements TranslationX and TranslationY properties from their current values to the new values. This ensures that the input layout is in the same position as the visual layout.

HasVisualStateGroups(VisualElement)

Returns true if element has one or more visual state groups associated with it. Otherwise, returns false.

CheckHandlers(IView)
ComputeDesiredSize(IView, Double, Double)
ComputeFrame(IView, Rect)
ToHandler(IElement, IMauiContext)
ToPlatform(IElement, IMauiContext)
ToHandler(IView, IMauiContext)
SetSemanticFocus(IView)
CaptureAsync(IView)
DisconnectHandlers(IView)
GetVisualElementWindow(IVisualTreeElement)

Gets the Window containing the Visual Tree Element, if the element is contained within one.

GetVisualTreeDescendants(IVisualTreeElement)

Gets the entire hierarchy of descendants as a list of children for a given Visual Tree Element.

GetVisualTreeElements(IVisualTreeElement, Point)

Gets list of a Visual Tree Element's children based off of a given Point.

GetVisualTreeElements(IVisualTreeElement, Rect)

Gets list of a Visual Tree Elements children based off of a rectangle.

GetVisualTreeElements(IVisualTreeElement, Double, Double, Double, Double)

Gets list of a Visual Tree Elements children based off of a rectangle defined by its coordinates which are specified in platform units, not pixels.

GetVisualTreeElements(IVisualTreeElement, Double, Double)

Gets list of a Visual Tree Elements children based off of a given x, y point.

Applies to