CarouselPage.xaml.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using Avalonia.Animation;
  3. using Avalonia.Controls;
  4. namespace ControlCatalog.Pages
  5. {
  6. public partial class CarouselPage : UserControl
  7. {
  8. public CarouselPage()
  9. {
  10. InitializeComponent();
  11. left.Click += (s, e) => carousel.Previous();
  12. right.Click += (s, e) => carousel.Next();
  13. transition.SelectionChanged += TransitionChanged;
  14. orientation.SelectionChanged += TransitionChanged;
  15. }
  16. private void TransitionChanged(object? sender, SelectionChangedEventArgs e)
  17. {
  18. switch (transition.SelectedIndex)
  19. {
  20. case 0:
  21. carousel.PageTransition = null;
  22. break;
  23. case 1:
  24. carousel.PageTransition = new PageSlide(TimeSpan.FromSeconds(0.25), orientation.SelectedIndex == 0 ? PageSlide.SlideAxis.Horizontal : PageSlide.SlideAxis.Vertical);
  25. break;
  26. case 2:
  27. carousel.PageTransition = new CrossFade(TimeSpan.FromSeconds(0.25));
  28. break;
  29. case 3:
  30. carousel.PageTransition = new Rotate3DTransition(TimeSpan.FromSeconds(0.5), orientation.SelectedIndex == 0 ? PageSlide.SlideAxis.Horizontal : PageSlide.SlideAxis.Vertical);
  31. break;
  32. }
  33. }
  34. }
  35. }