In This Article

ScrollableOverflowPresenter Class

A control that displays scroll buttons to scroll through the Child control when it doesn't fit in available space.

public class ScrollableOverflowPresenter : Control, IDataContextProvider, ILogical, IThemeVariantHost, IResourceHost, IResourceNode, IStyleHost, ISetLogicalParent, ISetInheritanceParent, IStyleable, INamed, IInputElement, IDataTemplateHost, ISetterValue, IOrientedElement, IScrollable
Inheritance:
object AvaloniaObject Animatable StyledElement Visual Layoutable Interactive InputElement Control object
Implements:
IDataContextProvider ILogical IThemeVariantHost IResourceHost IResourceNode IStyleHost ISetLogicalParent ISetInheritanceParent IStyleable INamed IInputElement IDataTemplateHost ISetterValue IOrientedElement IScrollable

Constructors

ScrollableOverflowPresenter()

Initializes an instance of the class.

public ScrollableOverflowPresenter()

Properties

AllowEmbeddedScrollButtons

Indicates whether scroll buttons are allowed to be displayed when overflowed.

public bool AllowEmbeddedScrollButtons { get; set; }

Property Value

bool:

The default value is true.

CanScrollBackward

Whether the control can currently be scrolled backward.

public bool CanScrollBackward { get; }

Property Value

bool

See Also

CanScrollForward

Whether the control can currently be scrolled forward.

public bool CanScrollForward { get; }

Property Value

bool

See Also

Child

The child control that scrolls within the bounds of this control.

[Content]
public Control? Child { get; set; }

Property Value

Control

ChildExtent

The minimum extent of the Child, which must be set by the child when UseInfiniteConstraint is false.

public double ChildExtent { get; set; }

Property Value

double:

The default value is 0.0.

Remarks

When UseInfiniteConstraint is false, the Child will be measured using the exact available size. Even though the Child may have an arranged extent that is larger than the available extent, the child's arranged extent is coerced by the UI framework to fit in the available space and that arranged extent is lost. This property allows the ScrollableOverflowPresenter to know what the intended arranged extent is.

IsAnimationEnabled

Whether animation is enabled.

public bool IsAnimationEnabled { get; set; }

Property Value

bool:

The default value is true.

IsOverflowed

The ring's outer radius, from which the ring is rendered inward.

public bool IsOverflowed { get; }

Property Value

bool

IsScrollBackwardButtonVisible

Whether the scroll backward button should be visible.

public bool IsScrollBackwardButtonVisible { get; }

Property Value

bool

IsScrollForwardButtonVisible

Whether the scroll forward button should be visible.

public bool IsScrollForwardButtonVisible { get; }

Property Value

bool

Orientation

The Avalonia.Layout.Orientation that governs the primary axis along which scrolling may occur.

public Orientation Orientation { get; set; }

Property Value

Orientation:

The default value is Avalonia.Layout.Orientation.Horizontal.

ScrollBackwardCommand

The ICommand which will scroll the control backward.

public ICommand ScrollBackwardCommand { get; }

Property Value

ICommand

ScrollButtonTheme

The Avalonia.Styling.ControlTheme to apply to scroll buttons.

public ControlTheme? ScrollButtonTheme { get; set; }

Property Value

ControlTheme

ScrollForwardCommand

The ICommand which will scroll the control forward.

public ICommand ScrollForwardCommand { get; }

Property Value

ICommand

ScrollOffset

The current scroll offset.

public double ScrollOffset { get; }

Property Value

double

UseInfiniteConstraint

Whether to use an infinite constraint when measuring the extent of the Child.

public bool UseInfiniteConstraint { get; set; }

Property Value

bool:

The default value is true.

Remarks

When true, the control measures the Child using an infinite extent, similar to how a Avalonia.Controls.ScrollViewer works. When false, the control measures the Child using the exact available size.

Methods

ArrangeOverride(Size)

Positions child elements as part of a layout pass.

protected override Size ArrangeOverride(Size finalSize)
Parameter Type Description
finalSize Size

The size available to the control.

Returns

Size:

The actual size used.

IsDescendantVisibleWithin(Control)

Returns whether the specified control is a descendant within this presenter.

public static bool IsDescendantVisibleWithin(Control descendantControl)
Parameter Type Description
descendantControl Control

The Avalonia.Controls.Control to examine.

Returns

bool:

true if the specified control is a descendant within this presenter; otherwise, false.

MeasureOverride(Size)

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

protected override Size MeasureOverride(Size availableSize)
Parameter Type Description
availableSize Size

The size available to the control.

Returns

Size:

The desired size for the control.

OnCreateAutomationPeer()

Returns a new, type-specific Avalonia.Automation.Peers.AutomationPeer implementation for the control.

protected override AutomationPeer OnCreateAutomationPeer()

Returns

AutomationPeer:

The type-specific Avalonia.Automation.Peers.AutomationPeer implementation.

OnPointerWheelChanged(PointerWheelEventArgs)

Called before the Avalonia.Input.InputElement.PointerWheelChanged event occurs.

protected override void OnPointerWheelChanged(PointerWheelEventArgs e)
Parameter Type Description
e PointerWheelEventArgs

The event args.

OnScrollOffsetChanged()

Raises the ScrollOffsetChanged event.

protected virtual void OnScrollOffsetChanged()

ScrollBackward()

Scrolls the control backward.

public void ScrollBackward()

See Also

ScrollForward()

Scrolls the control forward.

public void ScrollForward()

See Also

Events

ScrollOffsetChanged

Raised when the ScrollOffset property value changes.

public event EventHandler<RoutedEventArgs>? ScrollOffsetChanged

Event Type

EventHandler<RoutedEventArgs>

Fields

AllowEmbeddedScrollButtonsProperty

Defines the AllowEmbeddedScrollButtons property.

public static readonly StyledProperty<bool> AllowEmbeddedScrollButtonsProperty

CanScrollBackwardProperty

Defines the CanScrollBackward property.

public static readonly DirectProperty<ScrollableOverflowPresenter, bool> CanScrollBackwardProperty

CanScrollForwardProperty

Defines the CanScrollForward property.

public static readonly DirectProperty<ScrollableOverflowPresenter, bool> CanScrollForwardProperty

ChildExtentProperty

Defines the ChildExtent property.

public static readonly StyledProperty<double> ChildExtentProperty

ChildProperty

Defines the Child property.

public static readonly StyledProperty<Control?> ChildProperty

IsAnimationEnabledProperty

Defines the IsAnimationEnabled property.

public static readonly StyledProperty<bool> IsAnimationEnabledProperty

IsOverflowedProperty

Defines the IsOverflowed property.

public static readonly DirectProperty<ScrollableOverflowPresenter, bool> IsOverflowedProperty

IsScrollBackwardButtonVisibleProperty

Defines the IsScrollBackwardButtonVisible property.

public static readonly DirectProperty<ScrollableOverflowPresenter, bool> IsScrollBackwardButtonVisibleProperty

IsScrollForwardButtonVisibleProperty

Defines the IsScrollForwardButtonVisible property.

public static readonly DirectProperty<ScrollableOverflowPresenter, bool> IsScrollForwardButtonVisibleProperty

OrientationProperty

Defines the Orientation property.

public static readonly StyledProperty<Orientation> OrientationProperty

ScrollButtonThemeProperty

Defines the ScrollButtonTheme property.

public static readonly StyledProperty<ControlTheme?> ScrollButtonThemeProperty

ScrollOffsetChangedEvent

Defines the ScrollOffsetChanged event.

public static readonly RoutedEvent<RoutedEventArgs> ScrollOffsetChangedEvent

ScrollOffsetProperty

Defines the ScrollOffset property.

public static readonly StyledProperty<double> ScrollOffsetProperty

UseInfiniteConstraintProperty

Defines the UseInfiniteConstraint property.

public static readonly StyledProperty<bool> UseInfiniteConstraintProperty

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.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.OnKeyDown(KeyEventArgs)
  • InputElement.OnTextInput(TextInputEventArgs)
  • InputElement.OnPointerEntered(PointerEventArgs)
  • InputElement.OnPointerExited(PointerEventArgs)
  • InputElement.OnPointerMoved(PointerEventArgs)
  • InputElement.OnPointerPressed(PointerPressedEventArgs)
  • InputElement.OnPointerCaptureLost(PointerCaptureLostEventArgs)
  • 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.ArrangeCore(Rect)
  • Layoutable.OnMeasureInvalidated()
  • 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.LogicalChildrenCollectionChanged(object, NotifyCollectionChangedEventArgs)
  • Visual.OnAttachedToVisualTree(VisualTreeAttachmentEventArgs)
  • Visual.OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs)
  • 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.OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs)
  • StyledElement.OnDetachedFromLogicalTree(LogicalTreeAttachmentEventArgs)
  • StyledElement.OnDataContextChanged(EventArgs)
  • StyledElement.OnDataContextBeginUpdate()
  • StyledElement.OnDataContextEndUpdate()
  • StyledElement.OnInitialized()
  • 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.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.GetType()
  • object.MemberwiseClone()
  • object.ToString()
  • object.Equals(object, object)
  • object.ReferenceEquals(object, object)

Extension Methods