csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.9 KiB
68 lines
1.9 KiB
using System.Collections.Generic;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Controls.Primitives;
|
|
using Avalonia.Markup.Xaml;
|
|
using MiniMvvm;
|
|
|
|
namespace ControlCatalog.Pages
|
|
{
|
|
public class ScrollSnapPageViewModel : ViewModelBase
|
|
{
|
|
private SnapPointsType _snapPointsType;
|
|
private SnapPointsAlignment _snapPointsAlignment;
|
|
private bool _areSnapPointsRegular;
|
|
|
|
public ScrollSnapPageViewModel()
|
|
{
|
|
|
|
AvailableSnapPointsType = new List<SnapPointsType>()
|
|
{
|
|
SnapPointsType.None,
|
|
SnapPointsType.Mandatory,
|
|
SnapPointsType.MandatorySingle
|
|
};
|
|
|
|
AvailableSnapPointsAlignment = new List<SnapPointsAlignment>()
|
|
{
|
|
SnapPointsAlignment.Near,
|
|
SnapPointsAlignment.Center,
|
|
SnapPointsAlignment.Far,
|
|
};
|
|
}
|
|
|
|
public bool AreSnapPointsRegular
|
|
{
|
|
get => _areSnapPointsRegular;
|
|
set => this.RaiseAndSetIfChanged(ref _areSnapPointsRegular, value);
|
|
}
|
|
|
|
public SnapPointsType SnapPointsType
|
|
{
|
|
get => _snapPointsType;
|
|
set => this.RaiseAndSetIfChanged(ref _snapPointsType, value);
|
|
}
|
|
|
|
public SnapPointsAlignment SnapPointsAlignment
|
|
{
|
|
get => _snapPointsAlignment;
|
|
set => this.RaiseAndSetIfChanged(ref _snapPointsAlignment, value);
|
|
}
|
|
public List<SnapPointsType> AvailableSnapPointsType { get; }
|
|
public List<SnapPointsAlignment> AvailableSnapPointsAlignment { get; }
|
|
}
|
|
|
|
public class ScrollSnapPage : UserControl
|
|
{
|
|
public ScrollSnapPage()
|
|
{
|
|
this.InitializeComponent();
|
|
|
|
DataContext = new ScrollSnapPageViewModel();
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
AvaloniaXamlLoader.Load(this);
|
|
}
|
|
}
|
|
}
|
|
|