Элементы Stepper и Slider в .NET MAUI предназначены для работы с числовыми значениями. Оба этих элемента практически идентичны по своим свойствам, поэтому рассмотрим их совместно.
Stepper
Визуально, Stepper представляет из себя пару кнопок, помеченных знаками «+» и «-«. Сам компонент оперирует числовыми значениями в заданном диапазоне и предоставляет нам следующие свойства:
| Свойство | Тип | Описание |
Value |
double |
Текущее значение счётчика |
Increment |
double |
Шаг приращения счётчика |
Minimum |
double |
Минимальное значение, которого может достигнуть счётчик. Не может быть больше максимального значения |
Maximum |
double |
Максимальное значение, которого может достигнуть счётчик. Не может быть меньше минимального значения |
При изменении значения счётчика срабатывает событие ValueChanged
public event ValueChangedEventArgs> ValueChanged;
Чтобы продемонстрировать работу Stepper, создадим новое приложение .NET MAUI и изменим код страницы MainPage.xaml следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiApp7.MainPage">
<VerticalStackLayout>
<Stepper Minimum="-10"
Maximum="10"
Value="0"
ValueChanged="OnValueChanged" />
<Label x:Name="MyLabel"/>
</VerticalStackLayout>
</ContentPage>
Так как у Stepper нет никакого свойства для отображения значения счётчика, то мы добавили на страницу метку (Label), а также определили у Stepper обработчик события ValueChanged. Теперь откроем файл отдельного кода MainPage.xaml.cs и изменим его следующим образом:
namespace MauiApp7
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
public void OnValueChanged(object sender, ValueChangedEventArgs args)
{
MyLabel.Text = $"Текущее значение {args.NewValue}";
}
}
}
Теперь можно запустить приложение и проверить его работу. Как только вы нажмете на любую кнопку Stepper, то увидите текущее значение счётчика:
Используя событие ValueChanged, можно также получать и предыдущее значение счётчика. Изменим обработчик события следующим образом:
public void OnValueChanged(object sender, ValueChangedEventArgs args)
{
MyLabel.Text = $"Предыдущее значение {args.OldValue}\r\nТекущее значение {args.NewValue}";
}
Запустим приложение и проверим результат:
Slider
Элемент Slider представляет собой «ползунок» которым мы привыкли пользоваться, например, при регулировке громкости. Этот элемент предоставляет нам следующие свойства для работы:
| Свойство | Тип | Описание |
Value |
double |
Текущее значение счётчика |
Minimum |
double |
Минимальное значение, которого может достигнуть счётчик. Не может быть больше максимального значения |
Maximum |
double |
Максимальное значение, которого может достигнуть счётчик. Не может быть меньше минимального значения |
MinimumTrackColor |
Color |
Цвет полоски ползунка слева от кнопки |
MaximumTrackColor |
Color |
Цвет полоски ползунка справа от кнопки |
ThumbColor |
Color |
Цвет кнопки |
Также у Slider имеется ещё несколько полезных для нас свойств, но мы их рассмотрим позднее, когда изучим механизмы привязки и использования команда в .NET MAUI.
При изменении значения счётчика срабатывает событие ValueChanged
public event ValueChangedEventArgs> ValueChanged;
Дополнительно Slider предоставляет нам два новых события:
public event EventHandler DragStarted; public event EventHandler DragCompleted;
Событие DragStarted генерируется, когда пользователь начинает перетаскивать ползунок, а DragCompleted — когда отпускает кнопку мыши. Чтобы продемонстрировать работу Slider, изменим код страницы MainPage.xaml нашего приложения следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiApp7.MainPage">
<VerticalStackLayout>
<Slider Maximum="10"
Minimum="-10"
Value="0"
ValueChanged="OnValueChanged"
DragStarted="Slider_DragStarted"
DragCompleted="Slider_DragCompleted"
ThumbColor="Blue"
MinimumTrackColor="Red"
MaximumTrackColor="Green"/>
<Label x:Name="MyLabel"/>
<Label x:Name="DsLabel"/>
<Label x:Name="DeLabel"/>
</VerticalStackLayout>
</ContentPage>
а также добавим в файл отдельного кода новые обработчики событий:
private void Slider_DragStarted(object sender, EventArgs e)
{
DeLabel.Text = string.Empty;
DsLabel.Text = "Начали изменять положение ползунка";
}
private void Slider_DragCompleted(object sender, EventArgs e)
{
DeLabel.Text = "Закончили изменять положение ползунка";
DsLabel.Text = string.Empty; ;
}
Теперь запустим приложение и посмотрим на результат. Начало перетаскивания ползунка:
После окончания перетаскивания ползунка
Итого
Элементы Stepper и Slider схожи по своему действию и позволяют манипулировать числовыми значениями в заданном диапазоне. При этом, Stepper представляет из себя пару кнопок, а Slider — ползунок с помощью которых определяются новые значения счётчика.



