CarouselPage.xaml.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using Perspex.Animation;
  3. using Perspex.Controls;
  4. using Perspex.Markup.Xaml;
  5. namespace ControlCatalog.Pages
  6. {
  7. public class CarouselPage : UserControl
  8. {
  9. private Carousel _carousel;
  10. private Button _left;
  11. private Button _right;
  12. private DropDown _transition;
  13. public CarouselPage()
  14. {
  15. this.InitializeComponent();
  16. _left.Click += (s, e) => _carousel.Previous();
  17. _right.Click += (s, e) => _carousel.Next();
  18. _transition.SelectionChanged += TransitionChanged;
  19. }
  20. private void InitializeComponent()
  21. {
  22. PerspexXamlLoader.Load(this);
  23. _carousel = this.FindControl<Carousel>("carousel");
  24. _left = this.FindControl<Button>("left");
  25. _right = this.FindControl<Button>("right");
  26. _transition = this.FindControl<DropDown>("transition");
  27. }
  28. private void TransitionChanged(object sender, SelectionChangedEventArgs e)
  29. {
  30. switch (_transition.SelectedIndex)
  31. {
  32. case 0:
  33. _carousel.Transition = null;
  34. break;
  35. case 1:
  36. _carousel.Transition = new PageSlide(TimeSpan.FromSeconds(0.25));
  37. break;
  38. case 2:
  39. _carousel.Transition = new CrossFade(TimeSpan.FromSeconds(0.25));
  40. break;
  41. }
  42. }
  43. }
  44. }