ScrollViewerPage.xaml.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System.Collections.Generic;
  2. using Avalonia.Controls;
  3. using Avalonia.Controls.Primitives;
  4. using MiniMvvm;
  5. namespace ControlCatalog.Pages
  6. {
  7. public class ScrollViewerPageViewModel : ViewModelBase
  8. {
  9. private bool _allowAutoHide;
  10. private bool _enableInertia;
  11. private ScrollBarVisibility _horizontalScrollVisibility;
  12. private ScrollBarVisibility _verticalScrollVisibility;
  13. private SnapPointsType _snapPointsType;
  14. private SnapPointsAlignment _snapPointsAlignment;
  15. private bool _areSnapPointsRegular;
  16. public ScrollViewerPageViewModel()
  17. {
  18. AvailableVisibility = new List<ScrollBarVisibility>
  19. {
  20. ScrollBarVisibility.Auto,
  21. ScrollBarVisibility.Visible,
  22. ScrollBarVisibility.Hidden,
  23. ScrollBarVisibility.Disabled,
  24. };
  25. AvailableSnapPointsType = new List<SnapPointsType>()
  26. {
  27. SnapPointsType.None,
  28. SnapPointsType.Mandatory,
  29. SnapPointsType.MandatorySingle
  30. };
  31. AvailableSnapPointsAlignment = new List<SnapPointsAlignment>()
  32. {
  33. SnapPointsAlignment.Near,
  34. SnapPointsAlignment.Center,
  35. SnapPointsAlignment.Far,
  36. };
  37. HorizontalScrollVisibility = ScrollBarVisibility.Auto;
  38. VerticalScrollVisibility = ScrollBarVisibility.Auto;
  39. AllowAutoHide = true;
  40. EnableInertia = true;
  41. }
  42. public bool AllowAutoHide
  43. {
  44. get => _allowAutoHide;
  45. set => this.RaiseAndSetIfChanged(ref _allowAutoHide, value);
  46. }
  47. public bool EnableInertia
  48. {
  49. get => _enableInertia;
  50. set => this.RaiseAndSetIfChanged(ref _enableInertia, value);
  51. }
  52. public ScrollBarVisibility HorizontalScrollVisibility
  53. {
  54. get => _horizontalScrollVisibility;
  55. set => this.RaiseAndSetIfChanged(ref _horizontalScrollVisibility, value);
  56. }
  57. public ScrollBarVisibility VerticalScrollVisibility
  58. {
  59. get => _verticalScrollVisibility;
  60. set => this.RaiseAndSetIfChanged(ref _verticalScrollVisibility, value);
  61. }
  62. public List<ScrollBarVisibility> AvailableVisibility { get; }
  63. public bool AreSnapPointsRegular
  64. {
  65. get => _areSnapPointsRegular;
  66. set => this.RaiseAndSetIfChanged(ref _areSnapPointsRegular, value);
  67. }
  68. public SnapPointsType SnapPointsType
  69. {
  70. get => _snapPointsType;
  71. set => this.RaiseAndSetIfChanged(ref _snapPointsType, value);
  72. }
  73. public SnapPointsAlignment SnapPointsAlignment
  74. {
  75. get => _snapPointsAlignment;
  76. set => this.RaiseAndSetIfChanged(ref _snapPointsAlignment, value);
  77. }
  78. public List<SnapPointsType> AvailableSnapPointsType { get; }
  79. public List<SnapPointsAlignment> AvailableSnapPointsAlignment { get; }
  80. }
  81. public partial class ScrollViewerPage : UserControl
  82. {
  83. public ScrollViewerPage()
  84. {
  85. InitializeComponent();
  86. DataContext = new ScrollViewerPageViewModel();
  87. }
  88. }
  89. }