ScrollViewerPage.xaml.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 ScrollViewerPageViewModel : ViewModelBase
  9. {
  10. private bool _allowAutoHide;
  11. private ScrollBarVisibility _horizontalScrollVisibility;
  12. private ScrollBarVisibility _verticalScrollVisibility;
  13. public ScrollViewerPageViewModel()
  14. {
  15. AvailableVisibility = new List<ScrollBarVisibility>
  16. {
  17. ScrollBarVisibility.Auto,
  18. ScrollBarVisibility.Visible,
  19. ScrollBarVisibility.Hidden,
  20. ScrollBarVisibility.Disabled,
  21. };
  22. HorizontalScrollVisibility = ScrollBarVisibility.Auto;
  23. VerticalScrollVisibility = ScrollBarVisibility.Auto;
  24. AllowAutoHide = true;
  25. }
  26. public bool AllowAutoHide
  27. {
  28. get => _allowAutoHide;
  29. set => this.RaiseAndSetIfChanged(ref _allowAutoHide, value);
  30. }
  31. public ScrollBarVisibility HorizontalScrollVisibility
  32. {
  33. get => _horizontalScrollVisibility;
  34. set => this.RaiseAndSetIfChanged(ref _horizontalScrollVisibility, value);
  35. }
  36. public ScrollBarVisibility VerticalScrollVisibility
  37. {
  38. get => _verticalScrollVisibility;
  39. set => this.RaiseAndSetIfChanged(ref _verticalScrollVisibility, value);
  40. }
  41. public List<ScrollBarVisibility> AvailableVisibility { get; }
  42. }
  43. public class ScrollViewerPage : UserControl
  44. {
  45. public ScrollViewerPage()
  46. {
  47. InitializeComponent();
  48. DataContext = new ScrollViewerPageViewModel();
  49. }
  50. private void InitializeComponent()
  51. {
  52. AvaloniaXamlLoader.Load(this);
  53. }
  54. }
  55. }