using Common.system; using System; using System.Threading; using System.Windows; using System.Windows.Media.Imaging; using System.Windows.Threading; namespace XHWK.WKTool { /// /// 录屏等待 CountdownWindow.xaml 的交互逻辑 /// public partial class CountdownWindow : Window { public CountdownWindow() { InitializeComponent(); } /// /// 计时器 /// private int ImgNum = 21; public void Initialize(bool ShowlblShortcut = false, int changeTime = 2100) { //if (ShowlblShortcut) //{ // lblShortcut.Visibility = Visibility.Visible; //} //else //{ // lblShortcut.Visibility = Visibility.Hidden; //} ImgNum = 21; bool IsStart = true; new Thread(new ThreadStart(new Action(() => { while (IsStart) { try { if (ImgNum >= 1) { loadingImg(ImgNum); LogHelper.WriteInfoLog("【" + ImgNum + "】"); ImgNum--; Thread.Sleep(changeTime / 21); } else { IsStart = false; Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_1.png")); Hide(); })); } } catch (Exception ex) { LogHelper.WriteErrLog("【录屏等待】(Initialize)" + ex.Message, ex); } } }))).Start(); //timer = new System.Timers.Timer(changeTime/21);//设置执行一次(false)还是一直执行(true) //timer.AutoReset = true;//设置是否执行System.Timers.Timer.Elapsed事件 //timer.Elapsed +=new System.Timers.ElapsedEventHandler(Timer_Elapsed); ////timer.Interval = changeTime/21; //timer.Enabled = true; //启动计时器 //ImgNum = 21; } private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (ImgNum >= 1) { loadingImg(ImgNum); ImgNum--; LogHelper.WriteInfoLog("【" + ImgNum + "】"); } else { //timer.Enabled = false; Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_1.png")); Hide(); })); } } /// /// 加载图片 /// /// private void loadingImg(int num) { switch (num) { case 1: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_5.png")); })); break; case 2: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_4.png")); })); break; case 3: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_3.png")); })); break; case 4: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_2.png")); })); break; case 5: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_1.png")); })); break; case 6: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_7.png")); })); break; case 7: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_6.png")); })); break; case 8: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_5.png")); })); break; case 9: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_4.png")); })); break; case 10: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_3.png")); })); break; case 11: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_2.png")); })); break; case 12: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_1.png")); })); break; case 13: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_9.png")); })); break; case 14: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_8.png")); })); break; case 15: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_7.png")); })); break; case 16: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_6.png")); })); break; case 17: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_5.png")); })); break; case 18: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_4.png")); })); break; case 19: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_3.png")); })); break; case 20: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_2.png")); })); break; case 21: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_1.png")); })); break; default: break; } } private void Window_ContentRendered(object sender, EventArgs e) { } } }