Skip to main content

Class VelloSvgControl

Namespace: VelloSharp.Avalonia.Controls
Assembly: VelloSharp.Avalonia.Controls.dll

Renders an SVG document using the Vello renderer.

public class VelloSvgControl : VelloCanvasControl, INotifyPropertyChanged, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, ISupportInitialize, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue

Inheritance

object ← AvaloniaObject ← Animatable ← StyledElement ← Visual ← Layoutable ← Interactive ← InputElement ← Control ← VelloCanvasControlVelloSvgControl

Implements

INotifyPropertyChanged, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, ISupportInitialize, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue

Inherited Members

VelloCanvasControl.Draw, VelloCanvasControl.ShouldRenderVelloScene, VelloCanvasControl.Render(DrawingContext), VelloCanvasControl.OnDraw(VelloDrawEventArgs), VelloCanvasControl.GetFrameTimes(), Control.FocusAdornerProperty, Control.TagProperty, Control.ContextMenuProperty, Control.ContextFlyoutProperty, Control.RequestBringIntoViewEvent, Control.ContextRequestedEvent, Control.LoadedEvent, Control.UnloadedEvent, Control.SizeChangedEvent, Control.GetTemplateFocusTarget(), Control.OnLoaded(RoutedEventArgs), Control.OnUnloaded(RoutedEventArgs), Control.OnSizeChanged(SizeChangedEventArgs), Control.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs), Control.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs), Control.OnGotFocus(GotFocusEventArgs), Control.OnLostFocus(RoutedEventArgs), Control.OnCreateAutomationPeer(), Control.OnPointerReleased(PointerReleasedEventArgs), Control.OnKeyUp(KeyEventArgs), Control.OnPropertyChanged(AvaloniaPropertyChangedEventArgs), Control.FocusAdorner, Control.DataTemplates, Control.ContextMenu, Control.ContextFlyout, Control.IsLoaded, Control.Tag, Control.ContextRequested, Control.Loaded, Control.Unloaded, Control.SizeChanged, InputElement.FocusableProperty, InputElement.IsEnabledProperty, InputElement.IsEffectivelyEnabledProperty, InputElement.CursorProperty, InputElement.IsKeyboardFocusWithinProperty, InputElement.IsFocusedProperty, InputElement.IsHitTestVisibleProperty, InputElement.IsPointerOverProperty, InputElement.IsTabStopProperty, InputElement.GotFocusEvent, InputElement.LostFocusEvent, InputElement.KeyDownEvent, InputElement.KeyUpEvent, InputElement.TabIndexProperty, InputElement.TextInputEvent, InputElement.TextInputMethodClientRequestedEvent, InputElement.PointerEnteredEvent, InputElement.PointerExitedEvent, InputElement.PointerMovedEvent, InputElement.PointerPressedEvent, InputElement.PointerReleasedEvent, InputElement.PointerCaptureLostEvent, InputElement.PointerWheelChangedEvent, InputElement.TappedEvent, InputElement.HoldingEvent, InputElement.DoubleTappedEvent, InputElement.Focus(NavigationMethod, KeyModifiers), InputElement.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs), InputElement.OnAccessKey(RoutedEventArgs), InputElement.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs), InputElement.OnGotFocus(GotFocusEventArgs), InputElement.OnLostFocus(RoutedEventArgs), InputElement.OnKeyDown(KeyEventArgs), InputElement.OnKeyUp(KeyEventArgs), InputElement.OnTextInput(TextInputEventArgs), InputElement.OnPointerEntered(PointerEventArgs), InputElement.OnPointerExited(PointerEventArgs), InputElement.OnPointerMoved(PointerEventArgs), InputElement.OnPointerPressed(PointerPressedEventArgs), InputElement.OnPointerReleased(PointerReleasedEventArgs), InputElement.OnPointerCaptureLost(PointerCaptureLostEventArgs), InputElement.OnPointerWheelChanged(PointerWheelEventArgs), InputElement.OnPropertyChanged(AvaloniaPropertyChangedEventArgs), InputElement.UpdateIsEffectivelyEnabled(), InputElement.Focusable, InputElement.IsEnabled, InputElement.Cursor, InputElement.IsKeyboardFocusWithin, InputElement.IsFocused, InputElement.IsHitTestVisible, InputElement.IsPointerOver, InputElement.IsTabStop, InputElement.IsEffectivelyEnabled, InputElement.TabIndex, InputElement.KeyBindings, InputElement.IsEnabledCore, InputElement.GestureRecognizers, InputElement.GotFocus, InputElement.LostFocus, InputElement.KeyDown, InputElement.KeyUp, InputElement.TextInput, InputElement.TextInputMethodClientRequested, InputElement.PointerEntered, InputElement.PointerExited, InputElement.PointerMoved, InputElement.PointerPressed, InputElement.PointerReleased, InputElement.PointerCaptureLost, InputElement.PointerWheelChanged, InputElement.Tapped, InputElement.Holding, InputElement.DoubleTapped, Interactive.AddHandler(RoutedEvent, Delegate, RoutingStrategies, bool), Interactive.AddHandler<TEventArgs>(RoutedEvent<TEventArgs>, EventHandler<TEventArgs>?, RoutingStrategies, bool), Interactive.RemoveHandler(RoutedEvent, Delegate), Interactive.RemoveHandler<TEventArgs>(RoutedEvent<TEventArgs>, EventHandler<TEventArgs>?), Interactive.RaiseEvent(RoutedEventArgs), Interactive.BuildEventRoute(RoutedEvent), Layoutable.DesiredSizeProperty, Layoutable.WidthProperty, Layoutable.HeightProperty, Layoutable.MinWidthProperty, Layoutable.MaxWidthProperty, Layoutable.MinHeightProperty, Layoutable.MaxHeightProperty, Layoutable.MarginProperty, Layoutable.HorizontalAlignmentProperty, Layoutable.VerticalAlignmentProperty, Layoutable.UseLayoutRoundingProperty, Layoutable.UpdateLayout(), Layoutable.ApplyTemplate(), Layoutable.Measure(Size), Layoutable.Arrange(Rect), Layoutable.InvalidateMeasure(), Layoutable.InvalidateArrange(), Layoutable.AffectsMeasure<T>(params AvaloniaProperty[]), Layoutable.AffectsArrange<T>(params AvaloniaProperty[]), Layoutable.MeasureCore(Size), Layoutable.MeasureOverride(Size), Layoutable.ArrangeCore(Rect), Layoutable.ArrangeOverride(Size), Layoutable.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs), Layoutable.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs), Layoutable.OnMeasureInvalidated(), Layoutable.OnPropertyChanged(AvaloniaPropertyChangedEventArgs), Layoutable.OnVisualParentChanged(Visual?, Visual?), Layoutable.Width, Layoutable.Height, Layoutable.MinWidth, Layoutable.MaxWidth, Layoutable.MinHeight, Layoutable.MaxHeight, Layoutable.Margin, Layoutable.HorizontalAlignment, Layoutable.VerticalAlignment, Layoutable.DesiredSize, Layoutable.IsMeasureValid, Layoutable.IsArrangeValid, Layoutable.UseLayoutRounding, Layoutable.EffectiveViewportChanged, Layoutable.LayoutUpdated, Visual.BoundsProperty, Visual.ClipToBoundsProperty, Visual.ClipProperty, Visual.IsVisibleProperty, Visual.OpacityProperty, Visual.OpacityMaskProperty, Visual.EffectProperty, Visual.HasMirrorTransformProperty, Visual.RenderTransformProperty, Visual.RenderTransformOriginProperty, Visual.FlowDirectionProperty, Visual.VisualParentProperty, Visual.ZIndexProperty, Visual.GetFlowDirection(Visual), Visual.SetFlowDirection(Visual, FlowDirection), Visual.InvalidateVisual(), Visual.Render(DrawingContext), Visual.AffectsRender<T>(params AvaloniaProperty[]), Visual.OnPropertyChanged(AvaloniaPropertyChangedEventArgs), Visual.LogicalChildrenCollectionChanged(object?, NotifyCollectionChangedEventArgs), Visual.OnAttachedToVisualTreeCore(VisualTreeAttachmentEventArgs), Visual.OnDetachedFromVisualTreeCore(VisualTreeAttachmentEventArgs), Visual.OnAttachedToVisualTree(VisualTreeAttachmentEventArgs), Visual.OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs), Visual.OnVisualParentChanged(Visual?, Visual?), Visual.InvalidateMirrorTransform(), Visual.Bounds, Visual.ClipToBounds, Visual.Clip, Visual.IsEffectivelyVisible, Visual.IsVisible, Visual.Opacity, Visual.OpacityMask, Visual.Effect, Visual.HasMirrorTransform, Visual.RenderTransform, Visual.RenderTransformOrigin, Visual.FlowDirection, Visual.ZIndex, Visual.VisualChildren, Visual.VisualRoot, Visual.BypassFlowDirectionPolicies, Visual.AttachedToVisualTree, Visual.DetachedFromVisualTree, StyledElement.DataContextProperty, StyledElement.NameProperty, StyledElement.ParentProperty, StyledElement.TemplatedParentProperty, StyledElement.ThemeProperty, StyledElement.BeginInit(), StyledElement.EndInit(), StyledElement.ApplyStyling(), StyledElement.InitializeIfNeeded(), StyledElement.TryGetResource(object, ThemeVariant?, out object?), StyledElement.LogicalChildrenCollectionChanged(object?, NotifyCollectionChangedEventArgs), StyledElement.OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs), StyledElement.OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs), StyledElement.OnDataContextChanged(EventArgs), StyledElement.OnDataContextBeginUpdate(), StyledElement.OnDataContextEndUpdate(), StyledElement.OnInitialized(), StyledElement.OnPropertyChanged(AvaloniaPropertyChangedEventArgs), StyledElement.Name, StyledElement.Classes, StyledElement.DataContext, StyledElement.IsInitialized, StyledElement.Styles, StyledElement.StyleKey, StyledElement.Resources, StyledElement.TemplatedParent, StyledElement.Theme, StyledElement.LogicalChildren, StyledElement.PseudoClasses, StyledElement.StyleKeyOverride, StyledElement.Parent, StyledElement.ActualThemeVariant, StyledElement.AttachedToLogicalTree, StyledElement.DetachedFromLogicalTree, StyledElement.DataContextChanged, StyledElement.Initialized, StyledElement.ResourcesChanged, StyledElement.ActualThemeVariantChanged, Animatable.TransitionsProperty, Animatable.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs), Animatable.Transitions, AvaloniaObject.CheckAccess(), AvaloniaObject.VerifyAccess(), AvaloniaObject.ClearValue(AvaloniaProperty), AvaloniaObject.ClearValue<T>(AvaloniaProperty<T>), AvaloniaObject.ClearValue<T>(StyledProperty<T>), AvaloniaObject.ClearValue<T>(DirectPropertyBase<T>), AvaloniaObject.Equals(object?), AvaloniaObject.GetHashCode(), AvaloniaObject.GetValue(AvaloniaProperty), AvaloniaObject.GetValue<T>(StyledProperty<T>), AvaloniaObject.GetValue<T>(DirectPropertyBase<T>), AvaloniaObject.GetBaseValue<T>(StyledProperty<T>), AvaloniaObject.IsAnimating(AvaloniaProperty), AvaloniaObject.IsSet(AvaloniaProperty), AvaloniaObject.SetValue(AvaloniaProperty, object?, BindingPriority), AvaloniaObject.SetValue<T>(StyledProperty<T>, T, BindingPriority), AvaloniaObject.SetValue<T>(DirectPropertyBase<T>, T), AvaloniaObject.SetCurrentValue(AvaloniaProperty, object?), AvaloniaObject.SetCurrentValue<T>(StyledProperty<T>, T), AvaloniaObject.Bind(AvaloniaProperty, IBinding), AvaloniaObject.Bind(AvaloniaProperty, IObservable<object?>, BindingPriority), AvaloniaObject.Bind<T>(StyledProperty<T>, IObservable<object?>, BindingPriority), AvaloniaObject.Bind<T>(StyledProperty<T>, IObservable<T>, BindingPriority), AvaloniaObject.Bind<T>(StyledProperty<T>, IObservable<BindingValue<T>>, BindingPriority), AvaloniaObject.Bind<T>(DirectPropertyBase<T>, IObservable<object?>), AvaloniaObject.Bind<T>(DirectPropertyBase<T>, IObservable<T>), AvaloniaObject.Bind<T>(DirectPropertyBase<T>, IObservable<BindingValue<T>>), AvaloniaObject.CoerceValue(AvaloniaProperty), AvaloniaObject.UpdateDataValidation(AvaloniaProperty, BindingValueType, Exception?), AvaloniaObject.OnPropertyChangedCore(AvaloniaPropertyChangedEventArgs), AvaloniaObject.OnPropertyChanged(AvaloniaPropertyChangedEventArgs), AvaloniaObject.RaisePropertyChanged<T>(DirectPropertyBase<T>, T, T), AvaloniaObject.SetAndRaise<T>(DirectPropertyBase<T>, ref T, T), AvaloniaObject.InheritanceParent, AvaloniaObject.this[AvaloniaProperty], AvaloniaObject.this[IndexerDescriptor], AvaloniaObject.PropertyChanged, object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

Fields

LoadErrorProperty

Defines the property.

public static readonly DirectProperty<VelloSvgControl, string?> LoadErrorProperty

Field Value

DirectProperty<VelloSvgControl, string?>

SourceProperty

Defines the property.

public static readonly StyledProperty<Uri?> SourceProperty

Field Value

StyledProperty<Uri?>

StretchDirectionProperty

Defines the property.

public static readonly StyledProperty<StretchDirection> StretchDirectionProperty

Field Value

StyledProperty<StretchDirection>

StretchProperty

Defines the property.

public static readonly StyledProperty<Stretch> StretchProperty

Field Value

StyledProperty<Stretch>

SvgProperty

Defines the property.

public static readonly StyledProperty<VelloSvg?> SvgProperty

Field Value

StyledProperty<VelloSvg?>

Properties

LoadError

Gets the last load error encountered when reading the SVG resource.

public string? LoadError { get; }

Property Value

string?

Source

Gets or sets the URI of the SVG resource to load.

public Uri? Source { get; set; }

Property Value

Uri?

Stretch

Gets or sets how the SVG content is stretched to fit the available space.

public Stretch Stretch { get; set; }

Property Value

Stretch

StretchDirection

Gets or sets the allowed stretch directions.

public StretchDirection StretchDirection { get; set; }

Property Value

StretchDirection

Svg

Gets or sets the SVG instance rendered by the control.

[Content]
public VelloSvg? Svg { get; set; }

Property Value

VelloSvg?

Methods

ArrangeOverride(Size)

Positions child elements as part of a layout pass.

protected override Size ArrangeOverride(Size finalSize)

Parameters

finalSize Size

The size available to the control.

Returns

Size

The actual size used.

MeasureOverride(Size)

Measures the control and its child elements as part of a layout pass.

protected override Size MeasureOverride(Size availableSize)

Parameters

availableSize Size

The size available to the control.

Returns

Size

The desired size for the control.

OnAttachedToVisualTree(VisualTreeAttachmentEventArgs)

Called when the control is added to a rooted visual tree.

protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)

Parameters

e VisualTreeAttachmentEventArgs

The event args.

OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs)

Called when the control is removed from a rooted visual tree.

protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)

Parameters

e VisualTreeAttachmentEventArgs

The event args.

OnDraw(VelloDrawEventArgs)

Called when the control needs to produce Vello draw commands.

protected override void OnDraw(VelloDrawEventArgs args)

Parameters

args VelloDrawEventArgs

The draw arguments.

OnPropertyChanged(AvaloniaPropertyChangedEventArgs)

Called when a avalonia property changes on the object.

protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)

Parameters

change AvaloniaPropertyChangedEventArgs

The property change details.