ScrollSnapPage.xaml.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System.Collections.Generic;
  2. using Avalonia.Controls;
  3. using Avalonia.Controls.Primitives;
  4. using Avalonia.Markup.Xaml;
  5. using MiniMvvm;
  6. namespace ControlCatalog.Pages
  7. {
  8. public class ScrollSnapPageViewModel : ViewModelBase
  9. {
  10. private SnapPointsType _snapPointsType;
  11. private SnapPointsAlignment _snapPointsAlignment;
  12. private bool _areSnapPointsRegular;
  13. public ScrollSnapPageViewModel()
  14. {
  15. AvailableSnapPointsType = new List<SnapPointsType>()
  16. {
  17. SnapPointsType.None,
  18. SnapPointsType.Mandatory,
  19. SnapPointsType.MandatorySingle
  20. };
  21. AvailableSnapPointsAlignment = new List<SnapPointsAlignment>()
  22. {
  23. SnapPointsAlignment.Near,
  24. SnapPointsAlignment.Center,
  25. SnapPointsAlignment.Far,
  26. };
  27. }
  28. public bool AreSnapPointsRegular
  29. {
  30. get => _areSnapPointsRegular;
  31. set => this.RaiseAndSetIfChanged(ref _areSnapPointsRegular, value);
  32. }
  33. public SnapPointsType SnapPointsType
  34. {
  35. get => _snapPointsType;
  36. set => this.RaiseAndSetIfChanged(ref _snapPointsType, value);
  37. }
  38. public SnapPointsAlignment SnapPointsAlignment
  39. {
  40. get => _snapPointsAlignment;
  41. set => this.RaiseAndSetIfChanged(ref _snapPointsAlignment, value);
  42. }
  43. public List<SnapPointsType> AvailableSnapPointsType { get; }
  44. public List<SnapPointsAlignment> AvailableSnapPointsAlignment { get; }
  45. }
  46. public class ScrollSnapPage : UserControl
  47. {
  48. public ScrollSnapPage()
  49. {
  50. this.InitializeComponent();
  51. DataContext = new ScrollSnapPageViewModel();
  52. }
  53. private void InitializeComponent()
  54. {
  55. AvaloniaXamlLoader.Load(this);
  56. }
  57. }
  58. }