Visual Class

Summary

Base class for controls that provides rendering and related visual properties.
graph BT Type-->Base0["StyledElement"] click Base0 "/api/Avalonia/StyledElement" Base0-->Base1["Animatable"] click Base1 "/api/Avalonia.Animation/Animatable" Base1-->Base2["AvaloniaObject"] click Base2 "/api/Avalonia/AvaloniaObject" Base2-->Base3["object"] Type-.->Interface0["IAvaloniaObjectDebug"] click Interface0 "/api/Avalonia.Diagnostics/IAvaloniaObjectDebug" Type-.->Interface1["INotifyPropertyChanged"] Type-.->Interface2["IValueSink"] Type-.->Interface3["IStyledElement"] click Interface3 "/api/Avalonia/IStyledElement" Type-.->Interface4["IStyleable"] click Interface4 "/api/Avalonia.Styling/IStyleable" Type-.->Interface5["INamed"] click Interface5 "/api/Avalonia/INamed" Type-.->Interface6["IStyleHost"] click Interface6 "/api/Avalonia.Styling/IStyleHost" Type-.->Interface7["ILogical"] click Interface7 "/api/Avalonia.LogicalTree/ILogical" Type-.->Interface8["IResourceHost"] click Interface8 "/api/Avalonia.Controls/IResourceHost" Type-.->Interface9["IResourceNode"] click Interface9 "/api/Avalonia.Controls/IResourceNode" Type-.->Interface10["IDataContextProvider"] click Interface10 "/api/Avalonia/IDataContextProvider" Type-.->Interface11["IAvaloniaObject"] click Interface11 "/api/Avalonia/IAvaloniaObject" Type-.->Interface12["ISupportInitialize"] Type-.->Interface13["ISetLogicalParent"] click Interface13 "/api/Avalonia.Controls/ISetLogicalParent" Type-.->Interface14["ISetInheritanceParent"] click Interface14 "/api/Avalonia.Controls/ISetInheritanceParent" Type-.->Interface15["IVisual"] click Interface15 "/api/Avalonia.VisualTree/IVisual" Type["Visual"] class Type type-node Derived0["Layoutable"]-->Type click Derived0 "/api/Avalonia.Layout/Layoutable"

Syntax

[UsableDuringInitialization]
public class Visual : StyledElement, IAvaloniaObjectDebug, INotifyPropertyChanged, IValueSink, 
    IStyledElement, IStyleable, INamed, IStyleHost, ILogical, IResourceHost, IResourceNode, 
    IDataContextProvider, IAvaloniaObject, ISupportInitialize, ISetLogicalParent, 
    ISetInheritanceParent, IVisual

Remarks

The Visual class represents elements that have a visual on-screen representation and stores all the information needed for an IRenderer to render the control. To traverse the visual tree, use the extension methods defined in VisualExtensions.

Attributes

Constructors

Name Summary
Visual() Initializes a new instance of the Visual class.

Events

Name Type Summary
AttachedToLogicalTree EventHandler<LogicalTreeAttachmentEventArgs>?
Raised when the styled element is attached to a rooted logical tree.
Inherited from StyledElement
AttachedToVisualTree EventHandler<VisualTreeAttachmentEventArgs>
Raised when the control is attached to a rooted visual tree.
DataContextChanged EventHandler?
Occurs when the DataContext property changes.
Inherited from StyledElement
DetachedFromLogicalTree EventHandler<LogicalTreeAttachmentEventArgs>?
Raised when the styled element is detached from a rooted logical tree.
Inherited from StyledElement
DetachedFromVisualTree EventHandler<VisualTreeAttachmentEventArgs>
Raised when the control is detached from a rooted visual tree.
Initialized EventHandler?
Occurs when the styled element has finished initialization.
Inherited from StyledElement
PropertyChanged EventHandler<AvaloniaPropertyChangedEventArgs>
Raised when a AvaloniaProperty value changes on this object.
Inherited from AvaloniaObject
ResourcesChanged EventHandler<ResourcesChangedEventArgs>?
Occurs when a resource in this styled element or a parent styled element has changed.
Inherited from StyledElement

Fields

Name Constant Value Summary
BoundsProperty
Defines the Bounds property.
static
ClipProperty
Defines the Clip property.
static
ClipToBoundsProperty
Defines the ClipToBounds property.
static
ClockProperty
Defines the Clock property.
Inherited from Animatable
static
DataContextProperty
Defines the DataContext property.
Inherited from StyledElement
static
IsVisibleProperty
Defines the IsVisibleProperty property.
static
NameProperty
Defines the Name property.
Inherited from StyledElement
static
OpacityMaskProperty
Defines the OpacityMask property.
static
OpacityProperty
Defines the Opacity property.
static
ParentProperty
Defines the Parent property.
Inherited from StyledElement
static
RenderTransformOriginProperty
Defines the RenderTransformOrigin property.
static
RenderTransformProperty
Defines the RenderTransform property.
static
TemplatedParentProperty
Defines the TemplatedParent property.
Inherited from StyledElement
static
TransformedBoundsProperty
static
TransitionsProperty
Defines the Transitions property.
Inherited from Animatable
static
VisualParentProperty
Defines the VisualParent property.
static
ZIndexProperty
Defines the ZIndex property.
static

Properties

Name Value Summary
Bounds Rect
Gets the bounds of the control relative to its parent.
Classes Classes
Gets or sets the styled element's classes.
Inherited from StyledElement
Clip Geometry
Gets or sets the geometry clip for this visual.
ClipToBounds bool
Gets or sets a value indicating whether the control should be clipped to its bounds.
Clock IClock
Gets or sets the clock which controls the animations on the control.
Inherited from Animatable
DataContext object?
Gets or sets the control's data context.
Inherited from StyledElement
InheritanceParent IAvaloniaObject
Gets or sets the parent object that inherited AvaloniaProperty values are inherited from.
Inherited from AvaloniaObject
IsEffectivelyVisible bool
Gets a value indicating whether this control and all its parents are visible.
IsInitialized bool
Gets a value that indicates whether the element has finished initialization.
Inherited from StyledElement
IsVisible bool
Gets or sets a value indicating whether this control is visible.
LogicalChildren IAvaloniaList<ILogical>
Gets the styled element's logical children.
Inherited from StyledElement
Name string?
Gets or sets the name of the styled element.
Inherited from StyledElement
Opacity double
Gets or sets the opacity of the control.
OpacityMask IBrush
Gets or sets the opacity mask of the control.
Parent IStyledElement?
Gets the styled element's logical parent.
Inherited from StyledElement
PseudoClasses IPseudoClasses
Gets the Classes collection in a form that allows adding and removing pseudoclasses.
Inherited from StyledElement
RenderTransform ITransform
Gets or sets the render transform of the control.
RenderTransformOrigin RelativePoint
Gets or sets the transform origin of the control.
Resources IResourceDictionary
Gets or sets the styled element's resource dictionary.
Inherited from StyledElement
Styles Styles
Gets the styles for the styled element.
Inherited from StyledElement
TemplatedParent ITemplatedControl?
Gets the styled element whose lookless template this styled element is part of.
Inherited from StyledElement
this[AvaloniaProperty] object
Gets or sets the value of a AvaloniaProperty.
Inherited from AvaloniaObject
this[IndexerDescriptor] IBinding
Gets or sets a binding for a AvaloniaProperty.
Inherited from AvaloniaObject
TransformedBounds TransformedBounds?
Gets the bounds of the control relative to the window, accounting for rendering transforms.
Transitions Transitions?
Gets or sets the property transitions for the control.
Inherited from Animatable
VisualChildren IAvaloniaList<IVisual>
Gets the control's child visuals.
VisualRoot IRenderRoot
Gets the root of the visual tree, if the control is attached to a visual tree.
ZIndex int
Gets or sets the Z index of the control.

Methods

Name Value Summary
AffectsRender(AvaloniaProperty[]) void
Indicates that a property change should cause InvalidateVisual() to be called.
static
AffectsRender<T>(AvaloniaProperty[]) void
Indicates that a property change should cause InvalidateVisual() to be called.
static
ApplyStyling() bool
Applies styling to the control if the control is initialized and styling is not already applied.
Inherited from StyledElement
BeginBatchUpdate() void
Inherited from AvaloniaObject
BeginInit() void
Inherited from StyledElement
Bind<T>(DirectPropertyBase<T>, IObservable<BindingValue<T>>) IDisposable
Binds a AvaloniaProperty to an observable.
Inherited from AvaloniaObject
Bind<T>(StyledPropertyBase<T>, IObservable<BindingValue<T>>, BindingPriority) IDisposable
Binds a AvaloniaProperty to an observable.
Inherited from AvaloniaObject
CheckAccess() bool
Inherited from AvaloniaObject
ClearValue(AvaloniaProperty) void
Clears a AvaloniaProperty's local value.
Inherited from AvaloniaObject
ClearValue<T>(AvaloniaProperty<T>) void
Clears a AvaloniaProperty's local value.
Inherited from AvaloniaObject
ClearValue<T>(DirectPropertyBase<T>) void
Clears a AvaloniaProperty's local value.
Inherited from AvaloniaObject
ClearValue<T>(StyledPropertyBase<T>) void
Clears a AvaloniaProperty's local value.
Inherited from AvaloniaObject
CoerceValue<T>(StyledPropertyBase<T>) void
Coerces the specified AvaloniaProperty.
Inherited from AvaloniaObject
DisableTransitions() void
Disables transitions for the control.
Inherited from Animatable
EnableTransitions() void
Enables transitions for the control.
Inherited from Animatable
EndBatchUpdate() void
Inherited from AvaloniaObject
EndInit() void
Inherited from StyledElement
Equals(object) bool
Compares two objects using reference equality.
Inherited from AvaloniaObject
GetBaseValue<T>(StyledPropertyBase<T>, BindingPriority) Optional<T>
Gets an AvaloniaProperty base value.
Inherited from AvaloniaObject
GetHashCode() int
Gets the hash code for the object.
Inherited from AvaloniaObject
GetValue(AvaloniaProperty) object
Gets a AvaloniaProperty value.
Inherited from AvaloniaObject
GetValue<T>(DirectPropertyBase<T>) T
Gets a AvaloniaProperty value.
Inherited from AvaloniaObject
GetValue<T>(StyledPropertyBase<T>) T
Gets a AvaloniaProperty value.
Inherited from AvaloniaObject
InitializeIfNeeded() void
Inherited from StyledElement
InvalidateStyles() void
Detaches all styles from the element and queues a restyle.
Inherited from StyledElement
InvalidateVisual() void
Invalidates the visual and queues a repaint.
IsAnimating(AvaloniaProperty) bool
Checks whether a AvaloniaProperty is animating.
Inherited from AvaloniaObject
IsSet(AvaloniaProperty) bool
Checks whether a AvaloniaProperty is set on this object.
Inherited from AvaloniaObject
LogicalChildrenCollectionChanged(object, NotifyCollectionChangedEventArgs) void
NotifyChildResourcesChanged(ResourcesChangedEventArgs) void
Notifies child controls that a change has been made to resources that apply to them.
Inherited from StyledElement
OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs) void
Called when the styled element is added to a rooted logical tree.
Inherited from StyledElement
OnAttachedToVisualTree(VisualTreeAttachmentEventArgs) void
Called when the control is added to a rooted visual tree.
OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs) void
Calls the OnAttachedToVisualTree(VisualTreeAttachmentEventArgs) method for this control and all of its visual descendants.
OnDataContextBeginUpdate() void
Called when the DataContext begins updating.
Inherited from StyledElement
OnDataContextChanged(EventArgs) void
Called when the DataContext property changes.
Inherited from StyledElement
OnDataContextEndUpdate() void
Called when the DataContext finishes updating.
Inherited from StyledElement
OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs) void
Called when the styled element is removed from a rooted logical tree.
Inherited from StyledElement
OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs) void
Called when the control is removed from a rooted visual tree.
OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs) void
Calls the OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs) method for this control and all of its visual descendants.
OnInitialized() void
Called when the control finishes initialization.
Inherited from StyledElement
OnPropertyChangedCore<T>(AvaloniaPropertyChangedEventArgs<T>) void
Inherited from Animatable
OnVisualParentChanged(IVisual, IVisual) void
Called when the control's visual parent changes.
Render(DrawingContext) void
Renders the visual to a DrawingContext.
SetValue(AvaloniaProperty, object, BindingPriority) void
Sets a AvaloniaProperty value.
Inherited from AvaloniaObject
SetValue<T>(DirectPropertyBase<T>, T) void
Sets a AvaloniaProperty value.
Inherited from AvaloniaObject
SetValue<T>(StyledPropertyBase<T>, T, BindingPriority) IDisposable
Sets a AvaloniaProperty value.
Inherited from AvaloniaObject
VerifyAccess() void
Inherited from AvaloniaObject

Extension Methods

Name Value Summary
Bind(AvaloniaProperty, IObservable<BindingValue<object>>, BindingPriority) IDisposable
Binds a AvaloniaProperty to an observable.
Bind<T>(AvaloniaProperty<T>, IObservable<BindingValue<T>>, BindingPriority) IDisposable
Binds a AvaloniaProperty to an observable.
BindClass(string, IBinding, object) IDisposable
CalculateDistanceFromAncestor(IVisual) int
Calculates the distance from a visual's ancestor.
Find<T>(string) T
Finds a named element in an INameScope.
FindAncestorOfType<T>(bool) T
Finds first ancestor of given type.
FindCommonVisualAncestor(IVisual) IVisual
Tries to get the first common ancestor of two visuals.
FindDescendantOfType<T>(bool) T
Finds first descendant of given type.
FindLogicalAncestorOfType<T>(bool) T
Finds first ancestor of given type.
FindLogicalDescendantOfType<T>(bool) T
Finds first descendant of given type.
FindNameScope() INameScope
FindResource(object) object?
Finds the specified resource by searching up the logical tree and then global styles.
Get<T>(string) T
Gets a named element from an INameScope or throws if no element of the requested name was found.
GetBindingObservable(AvaloniaProperty) IObservable<BindingValue<object>>
Gets an observable for a AvaloniaProperty.
GetBindingObservable<T>(AvaloniaProperty<T>) IObservable<BindingValue<T>>
Gets an observable for a AvaloniaProperty.
GetBindingSubject(AvaloniaProperty, BindingPriority) ISubject<BindingValue<object>>
Gets a subject for a AvaloniaProperty.
GetBindingSubject<T>(AvaloniaProperty<T>, BindingPriority) ISubject<BindingValue<T>>
Gets a subject for a AvaloniaProperty.
GetDiagnostic(AvaloniaProperty) AvaloniaPropertyValue
Gets a diagnostic for a AvaloniaProperty on a AvaloniaObject.
GetLogicalAncestors() IEnumerable<ILogical>
Enumerates the ancestors of an ILogical in the logical tree.
GetLogicalChildren() IEnumerable<ILogical>
Enumerates the children of an ILogical in the logical tree.
GetLogicalDescendants() IEnumerable<ILogical>
Enumerates the descendants of an ILogical in the logical tree.
GetLogicalParent() ILogical
Gets the logical parent of an ILogical.
GetLogicalParent<T>() T
Gets the logical parent of an ILogical.
GetLogicalSiblings() IEnumerable<ILogical>
Enumerates the siblings of an ILogical in the logical tree.
GetObservable(AvaloniaProperty) IObservable<object>
Gets an observable for a AvaloniaProperty.
GetObservable<T>(AvaloniaProperty<T>) IObservable<T>
Gets an observable for a AvaloniaProperty.
GetPropertyChangedObservable(AvaloniaProperty) IObservable<AvaloniaPropertyChangedEventArgs>
Gets an observable that listens for property changed events for an AvaloniaProperty.
GetResourceObservable(object, Func<object?, object?>?) IObservable<object?>
GetSelfAndLogicalAncestors() IEnumerable<ILogical>
Enumerates an ILogical and its ancestors in the logical tree.
GetSelfAndLogicalDescendants() IEnumerable<ILogical>
Enumerates an ILogical and its descendants in the logical tree.
GetSelfAndVisualAncestors() IEnumerable<IVisual>
Enumerates an IVisual and its ancestors in the visual tree.
GetSelfAndVisualDescendants() IEnumerable<IVisual>
Enumerates an IVisual and its descendants in the visual tree.
GetStyleDiagnostics() StyleDiagnostics
Gets a style diagnostics for a StyledElement.
GetSubject(AvaloniaProperty, BindingPriority) ISubject<object>
Gets a subject for a AvaloniaProperty.
GetSubject<T>(AvaloniaProperty<T>, BindingPriority) ISubject<T>
Gets a subject for a AvaloniaProperty.
GetVisualAncestors() IEnumerable<IVisual>
Enumerates the ancestors of an IVisual in the visual tree.
GetVisualAt(Point) IVisual
Gets the first visual in the visual tree whose bounds contain a point.
GetVisualAt(Point, Func<IVisual, bool>) IVisual
Gets the first visual in the visual tree whose bounds contain a point.
GetVisualChildren() IEnumerable<IVisual>
Enumerates the children of an IVisual in the visual tree.
GetVisualDescendants() IEnumerable<IVisual>
Enumerates the descendants of an IVisual in the visual tree.
GetVisualParent() IVisual
Gets the visual parent of an IVisual.
GetVisualParent<T>() T
Gets the visual parent of an IVisual.
GetVisualRoot() IRenderRoot
Gets the root visual for an IVisual.
GetVisualsAt(Point) IEnumerable<IVisual>
Enumerates the visible visuals in the visual tree whose bounds contain a point.
GetVisualsAt(Point, Func<IVisual, bool>) IEnumerable<IVisual>
Enumerates the visuals in the visual tree whose bounds contain a point.
HitTestCustom(Point) bool
IsLogicalAncestorOf(ILogical) bool
Tests whether an ILogical is an ancestor of another logical.
IsVisualAncestorOf(IVisual) bool
Tests whether an IVisual is an ancestor of another visual.
PointToClient(PixelPoint) Point
Converts a point from screen to client coordinates.
PointToScreen(Point) PixelPoint
Converts a point from client to screen coordinates.
RegisterInNameScope<Visual>(INameScope) T
TransformToVisual(IVisual) Matrix?
Returns a transform that transforms the visual's coordinates into the coordinates of the specified to.
TranslatePoint(Point, IVisual) Point?
Translates a point relative to this visual to coordinates that are relative to the specified visual.
TryFindResource(object, object?) bool
Tries to the specified resource by searching up the logical tree and then global styles.