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.
CanScrollForward
Whether the control can currently be scrolled forward.
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.
IsOverflowed
The ring's outer radius, from which the ring is rendered inward.
IsScrollBackwardButtonVisible
Whether the scroll backward button should be visible.
IsScrollForwardButtonVisible
Whether the scroll forward button should be visible.
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.
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.
ScrollOffset
The current scroll offset.
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.
ScrollForward()
Scrolls the control forward.
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
- OrientedElementExtensions.CreatePoint(IOrientedElement, double, double)
- OrientedElementExtensions.CreateRect(IOrientedElement, double, double, double, double)
- OrientedElementExtensions.CreateSize(IOrientedElement, double, double)
- OrientedElementExtensions.GetLocationAscent(IOrientedElement, Point)
- OrientedElementExtensions.GetLocationAscent(IOrientedElement, Rect)
- OrientedElementExtensions.GetLocationAscent(IOrientedElement, Vector)
- OrientedElementExtensions.GetLocationExtent(IOrientedElement, Point)
- OrientedElementExtensions.GetLocationExtent(IOrientedElement, Rect)
- OrientedElementExtensions.GetLocationExtent(IOrientedElement, Vector)
- OrientedElementExtensions.GetOrientedValue<T>(IOrientedElement, Func<T>, Func<T>)
- OrientedElementExtensions.GetOrientedValue<T>(IOrientedElement, T, T)
- OrientedElementExtensions.GetPoint(IOrientedElement, double, double)
- OrientedElementExtensions.GetSizeAscent(IOrientedElement, Rect)
- OrientedElementExtensions.GetSizeAscent(IOrientedElement, Size)
- OrientedElementExtensions.GetSizeExtent(IOrientedElement, Rect)
- OrientedElementExtensions.GetSizeExtent(IOrientedElement, Size)
- OrientedElementExtensions.GetThicknessFarAscent(IOrientedElement, Thickness)
- OrientedElementExtensions.GetThicknessFarExtent(IOrientedElement, Thickness)
- OrientedElementExtensions.GetThicknessNearAscent(IOrientedElement, Thickness)
- OrientedElementExtensions.GetThicknessNearExtent(IOrientedElement, Thickness)
- OrientedElementExtensions.PerformOrientedAction(IOrientedElement, Action, Action)
- AvaloniaObjectExtensions.BindToProperty(AvaloniaObject, AvaloniaProperty, AvaloniaObject, AvaloniaProperty, BindingMode)
- AvaloniaObjectExtensions.BindToProperty(AvaloniaObject, AvaloniaProperty, object, AvaloniaProperty, BindingMode, IValueConverter, object)
- VisualExtensions.GetFirstFocusableVisualDescendant(Visual)
- VisualExtensions.InvalidateMeasureForAllVisualsInSameTemplate(Visual)
- VisualExtensions.InvalidateMeasureForVisualAncestorPath<PathEndType>(Visual, bool)
- ObjectExtensions.TryConvertToDouble(object, out double)
- ObjectExtensions.TryConvertToDouble(object, IFormatProvider, out double)