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 ← VelloCanvasControl ← VelloSvgControl

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.