星火微课系统客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

CountdownWindow.xaml.cs 3.4KB

4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
4 vuotta sitten
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. using System;
  2. using System.Windows;
  3. using System.Windows.Media.Imaging;
  4. using System.Windows.Threading;
  5. namespace XHWK.WKTool
  6. {
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Threading.Tasks;
  10. /// <summary>
  11. /// 录屏等待 CountdownWindow.xaml 的交互逻辑
  12. /// </summary>
  13. public partial class CountdownWindow
  14. {
  15. private readonly List<BitmapImage> _images = new List<BitmapImage>();
  16. public CountdownWindow()
  17. {
  18. InitializeComponent();
  19. foreach (var imgName in _imgNames)
  20. {
  21. _images.Add(new BitmapImage(new Uri("pack://application:,,/Images/" + imgName)));
  22. }
  23. }
  24. /// <summary>
  25. /// 计时器
  26. /// </summary>
  27. private int _imgNum = 22;
  28. public void Initialize(bool showlblShortcut = false, int changeTime = 3000)
  29. {
  30. imgLoding.Opacity = 0.1;
  31. imgLoding.Source = _images.Last();
  32. Init(showlblShortcut, changeTime);
  33. }
  34. private System.Timers.Timer _timer;
  35. private async void Init(bool showlblShortcut, int changeTime)
  36. {
  37. if (showlblShortcut)
  38. {
  39. lblShortcut.Visibility = Visibility.Visible;
  40. borShortcut.Visibility = Visibility.Visible;
  41. }
  42. else
  43. {
  44. lblShortcut.Visibility = Visibility.Hidden;
  45. borShortcut.Visibility = Visibility.Hidden;
  46. }
  47. _imgNum = 22;
  48. _timer = new System.Timers.Timer();
  49. _timer.Enabled = true;
  50. _timer.Interval = 1.0 * changeTime / 22;
  51. _timer.Elapsed += Timer_Elapsed;
  52. _timer.Start();
  53. await Task.Delay(300);
  54. imgLoding.Opacity = 1;
  55. }
  56. private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
  57. {
  58. if (_imgNum >= 0)
  59. {
  60. Dispatcher.Invoke
  61. (
  62. () =>
  63. {
  64. // 执行操作
  65. imgLoding.Source = _images[_imgNum];
  66. },
  67. DispatcherPriority.Send
  68. );
  69. _imgNum--;
  70. }
  71. else
  72. {
  73. _timer.Stop();
  74. Dispatcher.Invoke
  75. (
  76. () =>
  77. {
  78. // 执行操作
  79. imgLoding.Source = _images.Last();
  80. Hide();
  81. },
  82. DispatcherPriority.Send
  83. );
  84. }
  85. }
  86. readonly string[] _imgNames =
  87. {
  88. "countdown1_7.png",
  89. "countdown1_6.png",
  90. "countdown1_5.png",
  91. "countdown1_4.png",
  92. "countdown1_3.png",
  93. "countdown1_2.png",
  94. "countdown1_1.png",
  95. "countdown2_7.png",
  96. "countdown2_6.png",
  97. "countdown2_5.png",
  98. "countdown2_4.png",
  99. "countdown2_3.png",
  100. "countdown2_2.png",
  101. "countdown2_1.png",
  102. "countdown3_8.png",
  103. "countdown3_7.png",
  104. "countdown3_6.png",
  105. "countdown3_5.png",
  106. "countdown3_4.png",
  107. "countdown3_3.png",
  108. "countdown3_2.png",
  109. "countdown3_1.png",
  110. "countdown3_1.png",
  111. };
  112. }
  113. }