Primary WPF APIs:
ProgressBarSliderScrollBarPrimary Avalonia APIs:
ProgressBarSliderScrollBar| WPF | Avalonia |
|---|---|
ProgressBar.IsIndeterminate |
same concept |
ProgressBar.Value/Maximum |
same concept |
Slider value/range |
same concept |
ScrollBar as explicit range input |
same concept |
WPF XAML:
<StackPanel>
<Slider Minimum="50" Maximum="200" Value="{Binding ZoomPercent}" />
<ProgressBar Minimum="0" Maximum="100" Value="{Binding Progress}" />
</StackPanel>
Avalonia XAML:
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:MyApp.ViewModels"
x:DataType="vm:ImportViewModel">
<Grid RowDefinitions="Auto,Auto,Auto,Auto" RowSpacing="8">
<Slider Grid.Row="0"
Minimum="50"
Maximum="200"
Value="{CompiledBinding ZoomPercent, Mode=TwoWay}" />
<ProgressBar Grid.Row="1"
Minimum="0"
Maximum="100"
Value="{CompiledBinding Progress}" />
<ProgressBar Grid.Row="2"
IsIndeterminate="{CompiledBinding IsBusy}" />
<ScrollBar Grid.Row="3"
Orientation="Horizontal"
Minimum="0"
Maximum="100"
Value="{CompiledBinding ScrollPosition, Mode=TwoWay}" />
</Grid>
</UserControl>
using Avalonia.Controls;
var zoom = new Slider { Minimum = 50, Maximum = 200, Value = viewModel.ZoomPercent };
var progress = new ProgressBar { Minimum = 0, Maximum = 100, Value = viewModel.Progress };
var busy = new ProgressBar { IsIndeterminate = viewModel.IsBusy };
var bar = new ScrollBar { Orientation = Avalonia.Layout.Orientation.Horizontal, Minimum = 0, Maximum = 100 };