SmoothScroll.Avalonia
12.0.0.11
dotnet add package SmoothScroll.Avalonia --version 12.0.0.11
NuGet\Install-Package SmoothScroll.Avalonia -Version 12.0.0.11
<PackageReference Include="SmoothScroll.Avalonia" Version="12.0.0.11" />
<PackageVersion Include="SmoothScroll.Avalonia" Version="12.0.0.11" />
<PackageReference Include="SmoothScroll.Avalonia" />
paket add SmoothScroll.Avalonia --version 12.0.0.11
#r "nuget: SmoothScroll.Avalonia, 12.0.0.11"
#:package SmoothScroll.Avalonia@12.0.0.11
#addin nuget:?package=SmoothScroll.Avalonia&version=12.0.0.11
#tool nuget:?package=SmoothScroll.Avalonia&version=12.0.0.11
SmoothScroll.Avalonia
Implement WinUI's InteractionTracker and ScrollView in Avalonia.
Features:
- Smooth scroll
- Panning and zooming
- Multi-touch support
- Physics-based overscroll bounce animations
https://github.com/user-attachments/assets/927a8c80-ac2b-4d50-b86b-8b2fe853ce5d
This is an experimental project.
The implemention contains some hack of Avalonia composition renderer.
ScrollViewer
Add ScrollViewerSmoothTheme to your application's styles to enable smooth scrolling for default ScrollViewer control:
<Application
xmlns:smoothScroll="using:SmoothScroll.Avalonia.Controls">
<Application.Styles>
<... />
<smoothScroll:ScrollViewerSmoothTheme />
</Application.Styles>
</Application>
ScrollView
A standalone control that provides smooth scroll, with panning and zooming support.
First, add ScrollViewDefaultTheme to styles:
<Application
xmlns:smoothScroll="using:SmoothScroll.Avalonia.Controls">
<Application.Styles>
<... />
<smoothScroll:ScrollViewDefaultTheme />
</Application.Styles>
</Application>
Now you can use ScrollView like this:
<smoothScroll:ScrollView
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center"
HorizontalScrollBarVisibility="Hidden"
IsZoomEnabled="True"
VerticalScrollBarVisibility="Hidden">
<Image Source="avares://SmoothScroll.Avalonia.Sample/Assets/Images/4074.bmp" Stretch="UniformToFill" />
</smoothScroll:ScrollView>
ContentOrientation
Instead of depending on Vertical/HorizontalScrollBarVisibility, ScrollPresenter uses a standalone ContentOrientation property to control the layout of the content. This property determines how content can grow when it's not explicitly constrained.
If Height and Width are explicitly set on the content, ContentOrientation has no effect.
<ScrollViewer
x:Name="HorizontalSnapsScrollViewer"
HorizontalAlignment="Stretch">
<ScrollViewer.Styles>
<Style Selector="controls|ScrollPresenter">
<Setter Property="ContentOrientation" Value="Horizontal" />
</Style>
</ScrollViewer.Styles>
<StackPanel Orientation="Horizontal">
...
</StackPanel>
</ScrollViewer>
<smoothScroll:ScrollView
x:Name="HorizontalSnapsScrollViewer"
HorizontalAlignment="Stretch"
ContentOrientation="Horizontal">
<StackPanel Orientation="Horizontal">
...
</StackPanel>
</smoothScroll:ScrollView>
Credits
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Avalonia (>= 12.0.0)
- SmoothScroll.Avalonia.Interaction (>= 12.0.0.11)
-
net8.0
- Avalonia (>= 12.0.0)
- SmoothScroll.Avalonia.Interaction (>= 12.0.0.11)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on SmoothScroll.Avalonia:
| Repository | Stars |
|---|---|
|
Pixeval/Pixeval
Wow. Yet another Pixiv client!
|