Skip to main content

Class Svg

Namespace: VelloSharp.Avalonia.Svg
Assembly: VelloSharp.Avalonia.Svg.dll

Vello-backed SVG control that keeps the classic Avalonia SVG surface mostly intact.

public class Svg : Control, 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 ← Svg

Implements

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

Inherited Members

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()

Constructors

Svg()

public Svg()

Svg(Uri)

public Svg(Uri baseUri)

Parameters

baseUri Uri

Svg(IServiceProvider)

public Svg(IServiceProvider serviceProvider)

Parameters

serviceProvider IServiceProvider

Fields

CssProperty

public static readonly AttachedProperty<string?> CssProperty

Field Value

AttachedProperty<string?>

CurrentCssProperty

public static readonly AttachedProperty<string?> CurrentCssProperty

Field Value

AttachedProperty<string?>

DisableFiltersProperty

public static readonly DirectProperty<Svg, bool> DisableFiltersProperty

Field Value

DirectProperty<Svg, bool>

EnableCacheProperty

public static readonly DirectProperty<Svg, bool> EnableCacheProperty

Field Value

DirectProperty<Svg, bool>

PanXProperty

public static readonly DirectProperty<Svg, double> PanXProperty

Field Value

DirectProperty<Svg, double>

PanYProperty

public static readonly DirectProperty<Svg, double> PanYProperty

Field Value

DirectProperty<Svg, double>

PathProperty

public static readonly StyledProperty<string?> PathProperty

Field Value

StyledProperty<string?>

SourceProperty

public static readonly StyledProperty<string?> SourceProperty

Field Value

StyledProperty<string?>

StretchDirectionProperty

public static readonly StyledProperty<StretchDirection> StretchDirectionProperty

Field Value

StyledProperty<StretchDirection>

StretchProperty

public static readonly StyledProperty<Stretch> StretchProperty

Field Value

StyledProperty<Stretch>

WireframeProperty

public static readonly DirectProperty<Svg, bool> WireframeProperty

Field Value

DirectProperty<Svg, bool>

ZoomProperty

public static readonly DirectProperty<Svg, double> ZoomProperty

Field Value

DirectProperty<Svg, double>

Properties

DisableFilters

public bool DisableFilters { get; set; }

Property Value

bool

EnableCache

public bool EnableCache { get; set; }

Property Value

bool

PanX

public double PanX { get; set; }

Property Value

double

PanY

public double PanY { get; set; }

Property Value

double

Path

[Content]
public string? Path { get; set; }

Property Value

string?

Source

public string? Source { get; set; }

Property Value

string?

Stretch

public Stretch Stretch { get; set; }

Property Value

Stretch

StretchDirection

public StretchDirection StretchDirection { get; set; }

Property Value

StretchDirection

VelloSvg

public VelloSvg? VelloSvg { get; }

Property Value

VelloSvg?

Wireframe

public bool Wireframe { get; set; }

Property Value

bool

Zoom

public double Zoom { get; set; }

Property Value

double

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.

GetCss(AvaloniaObject)

public static string? GetCss(AvaloniaObject element)

Parameters

element AvaloniaObject

Returns

string?

GetCurrentCss(AvaloniaObject)

public static string? GetCurrentCss(AvaloniaObject element)

Parameters

element AvaloniaObject

Returns

string?

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.

OnPropertyChanged(AvaloniaPropertyChangedEventArgs)

Called when a avalonia property changes on the object.

protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)

Parameters

change AvaloniaPropertyChangedEventArgs

The property change details.

Render(DrawingContext)

Renders the visual to a .

public override void Render(DrawingContext context)

Parameters

context DrawingContext

The drawing context.

SetCss(AvaloniaObject, string?)

public static void SetCss(AvaloniaObject element, string? value)

Parameters

element AvaloniaObject

value string?

SetCurrentCss(AvaloniaObject, string?)

public static void SetCurrentCss(AvaloniaObject element, string? value)

Parameters

element AvaloniaObject

value string?

ZoomToPoint(double, Point)

public void ZoomToPoint(double newZoom, Point point)

Parameters

newZoom double

point Point