PageRenderTime 40ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/toolkit/PhoneToolkitSample/Samples/TransitionsSample.xaml.cs

https://bitbucket.org/jeremejevs/word-steps
C# | 171 lines | 159 code | 12 blank | 0 comment | 5 complexity | 9eb6a23e5151f01642f5d36e92e0ab48 MD5 | raw file
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Globalization;
  4. using System.Windows;
  5. using System.Windows.Data;
  6. using Microsoft.Phone.Controls;
  7. namespace PhoneToolkitSample.Samples
  8. {
  9. public partial class TransitionsSample : PhoneApplicationPage
  10. {
  11. public TransitionsSample()
  12. {
  13. DataContext = this;
  14. InitializeComponent();
  15. }
  16. public IList<string> Families
  17. {
  18. get
  19. {
  20. return new List<string>
  21. {
  22. "Roll",
  23. "Rotate",
  24. "Slide",
  25. "Swivel",
  26. "Turnstile"
  27. };
  28. }
  29. }
  30. private RotateTransition RotateTransitionElement(string mode)
  31. {
  32. RotateTransitionMode rotateTransitionMode = (RotateTransitionMode)Enum.Parse(typeof(RotateTransitionMode), mode, false);
  33. return new RotateTransition { Mode = rotateTransitionMode };
  34. }
  35. private SlideTransition SlideTransitionElement(string mode)
  36. {
  37. SlideTransitionMode slideTransitionMode = (SlideTransitionMode)Enum.Parse(typeof(SlideTransitionMode), mode, false);
  38. return new SlideTransition { Mode = slideTransitionMode };
  39. }
  40. private SwivelTransition SwivelTransitionElement(string mode)
  41. {
  42. SwivelTransitionMode swivelTransitionMode = (SwivelTransitionMode)Enum.Parse(typeof(SwivelTransitionMode), mode, false);
  43. return new SwivelTransition { Mode = swivelTransitionMode };
  44. }
  45. private TurnstileTransition TurnstileTransitionElement(string mode)
  46. {
  47. TurnstileTransitionMode turnstileTransitionMode = (TurnstileTransitionMode)Enum.Parse(typeof(TurnstileTransitionMode), mode, false);
  48. return new TurnstileTransition { Mode = turnstileTransitionMode };
  49. }
  50. private TransitionElement TransitionElement(string family, string mode)
  51. {
  52. switch (family)
  53. {
  54. case "Rotate":
  55. return RotateTransitionElement(mode);
  56. case "Slide":
  57. return SlideTransitionElement(mode);
  58. case "Swivel":
  59. return SwivelTransitionElement(mode);
  60. case "Turnstile":
  61. return TurnstileTransitionElement(mode);
  62. }
  63. return null;
  64. }
  65. private void See(object sender, RoutedEventArgs e)
  66. {
  67. string family = (string)Family.SelectedItem;
  68. string mode = (string)Mode.SelectedItem;
  69. TransitionElement transitionElement = null;
  70. if (family.Equals("Roll"))
  71. {
  72. transitionElement = new RollTransition();
  73. }
  74. else
  75. {
  76. transitionElement = TransitionElement(family, mode);
  77. }
  78. PhoneApplicationPage phoneApplicationPage = (PhoneApplicationPage)(((PhoneApplicationFrame)Application.Current.RootVisual)).Content;
  79. ITransition transition = transitionElement.GetTransition(phoneApplicationPage);
  80. transition.Completed += delegate
  81. {
  82. transition.Stop();
  83. };
  84. transition.Begin();
  85. }
  86. private void Forward(object sender, RoutedEventArgs e)
  87. {
  88. NavigationService.Navigate(new Uri("/Samples/NavigationTransitionSample1.xaml", UriKind.Relative));
  89. }
  90. private void FamilySelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
  91. {
  92. string family = (string)Family.SelectedItem;
  93. Mode.Visibility = family.Equals("Roll") ? Visibility.Collapsed : Visibility.Visible;
  94. }
  95. }
  96. public class EnumConverter : IValueConverter
  97. {
  98. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  99. {
  100. string s = value as string;
  101. if (s == null)
  102. {
  103. return null;
  104. }
  105. switch (s)
  106. {
  107. case "Roll":
  108. return new List<string>();
  109. case "Rotate":
  110. return new List<string>
  111. {
  112. "In90Clockwise",
  113. "In90Counterclockwise",
  114. "In180Clockwise",
  115. "In180Counterclockwise",
  116. "Out90Clockwise",
  117. "Out90Counterclockwise",
  118. "Out180Clockwise",
  119. "Out180Counterclockwise"
  120. };
  121. case "Slide":
  122. return new List<string>
  123. {
  124. "SlideUpFadeIn",
  125. "SlideUpFadeOut",
  126. "SlideDownFadeIn",
  127. "SlideDownFadeOut",
  128. "SlideLeftFadeIn",
  129. "SlideLeftFadeOut",
  130. "SlideRightFadeIn",
  131. "SlideRightFadeOut"
  132. };
  133. case "Swivel":
  134. return new List<string>
  135. {
  136. "FullScreenIn",
  137. "FullScreenOut",
  138. "ForwardIn",
  139. "ForwardOut",
  140. "BackwardIn",
  141. "BackwardOut"
  142. };
  143. case "Turnstile":
  144. return new List<string>
  145. {
  146. "ForwardIn",
  147. "ForwardOut",
  148. "BackwardIn",
  149. "BackwardOut"
  150. };
  151. }
  152. return null;
  153. }
  154. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  155. {
  156. throw new NotSupportedException();
  157. }
  158. }
  159. }