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
public static readonly DirectProperty<VelloSvgControl, string?> LoadErrorProperty
Field Value
DirectProperty<VelloSvgControl, string?>
SourceProperty
Defines the
public static readonly StyledProperty<Uri?> SourceProperty
Field Value
StyledProperty<Uri?>
StretchDirectionProperty
Defines the
public static readonly StyledProperty<StretchDirection> StretchDirectionProperty
Field Value
StyledProperty<StretchDirection>
StretchProperty
Defines the
public static readonly StyledProperty<Stretch> StretchProperty
Field Value
StyledProperty<Stretch>
SvgProperty
Defines the
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
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
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.