Advertisement
selebry

j;ofsdklf

Nov 3rd, 2022
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.75 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows;
  7. using System.Windows.Controls;
  8. using System.Windows.Data;
  9. using System.Windows.Documents;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Windows.Media.Imaging;
  13. using System.Windows.Shapes;
  14. //--< using >--
  15.  
  16. using System.IO; //Folder, Directory
  17. using System.Windows.Forms;
  18. using System.Windows.Media.Animation;
  19. //--</ using >--
  20.  
  21. namespace Work3110Animation
  22. {
  23. /// <summary>
  24. /// Логика взаимодействия для SlideShow.xaml
  25. /// </summary>
  26. public partial class SlideShow : Window
  27. {
  28. List<BitmapImage> bitmapImages = new List<BitmapImage>();
  29. Storyboard storyboard = new Storyboard();
  30. int i = 0;
  31. bool flag = false;
  32. public SlideShow()
  33. {
  34. InitializeComponent();
  35. }
  36.  
  37. private void bt_Select_Click(object sender, RoutedEventArgs e)
  38. {
  39. FolderBrowserDialog folderDialog = new FolderBrowserDialog();
  40. folderDialog.ShowNewFolderButton = false;
  41. folderDialog.SelectedPath = AppDomain.CurrentDomain.BaseDirectory;
  42. DialogResult result = folderDialog.ShowDialog();
  43. string[] imageEx =
  44. {
  45. ".jpeg",
  46. ".jpg",
  47. ".png",
  48. ".bmp",
  49. ".jp2",
  50. ".jxr",
  51. ".gif",
  52. ".pic",
  53. ".ico",
  54. ".svg",
  55. ".avif"
  56. };
  57. if (result == System.Windows.Forms.DialogResult.OK)
  58. {
  59.  
  60. DirectoryInfo folder = new DirectoryInfo(folderDialog.SelectedPath);
  61. if (folder.Exists)
  62. {
  63. //------< @Loop: Files >------
  64. foreach (var fileInfo in folder.GetFiles())
  65. {
  66. if (imageEx.Contains(fileInfo.Extension))
  67. bitmapImages.Add(new BitmapImage(new Uri(fileInfo.FullName, UriKind.Absolute)));
  68. }
  69. }
  70. }
  71. i = 0;
  72. im1.Source = bitmapImages[i];
  73. Curr_im.Content = $"{i + 1}/{bitmapImages.Count}";
  74. InitAnimimation();
  75. }
  76.  
  77. private void show_Click(object sender, RoutedEventArgs e)
  78. {
  79.  
  80. }
  81.  
  82. private void bt_StopAnimation_Click(object sender, RoutedEventArgs e)
  83. {
  84. storyboard.Pause();
  85. }
  86.  
  87. private void bt_Prev_Click(object sender, RoutedEventArgs e)
  88. {
  89. i--;
  90. if (i == -1) i = bitmapImages.Count-1;
  91. storyboard.Seek(TimeSpan.FromSeconds(i+1));
  92. im1.Source = bitmapImages[i];
  93. Curr_im.Content = $"{i+1}/{bitmapImages.Count}";
  94.  
  95. }
  96.  
  97. private void InitAnimimation()
  98. {
  99. var animation = new ObjectAnimationUsingKeyFrames();
  100. Storyboard.SetTarget(animation, im1);
  101. Storyboard.SetTargetProperty(animation, new PropertyPath("Source"));
  102. TimeSpan currentInteval = TimeSpan.FromMilliseconds(1);
  103. foreach (var imageName in bitmapImages)
  104. {
  105. ObjectKeyFrame keyFrame = new DiscreteObjectKeyFrame();
  106. keyFrame.Value = imageName;
  107. keyFrame.KeyTime = currentInteval;
  108. animation.KeyFrames.Add(keyFrame);
  109. currentInteval = currentInteval.Add(TimeSpan.FromSeconds(1));
  110. }
  111. storyboard.RepeatBehavior = RepeatBehavior.Forever;
  112. storyboard.Children.Add(animation);
  113. storyboard.Begin();
  114. storyboard.Pause();
  115. }
  116. private void bt_StartAnimation_Click(object sender, RoutedEventArgs e)
  117. {
  118. storyboard.Resume();
  119. Curr_im.Content = $"{storyboard.GetCurrentTime().Seconds}/{bitmapImages.Count}";
  120.  
  121. }
  122.  
  123. private void bt_next_Click(object sender, RoutedEventArgs e)
  124. {
  125. i++;
  126. if (i == bitmapImages.Count) i = 0;
  127. storyboard.Seek(TimeSpan.FromSeconds(i+1));
  128. im1.Source = bitmapImages[i];
  129. Curr_im.Content = $"{i + 1}/{bitmapImages.Count}";
  130. }
  131.  
  132. private void Curr_im_TextInput(object sender, TextCompositionEventArgs e)
  133. {
  134. }
  135.  
  136. private void Curr_im_TargetUpdated(object sender, DataTransferEventArgs e)
  137. {
  138. }
  139.  
  140. private void Curr_im_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
  141. {
  142. System.Windows.MessageBox.Show("A1kkkk");
  143.  
  144. }
  145. }
  146. }
  147.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement