using System; using System.Threading; using System.Windows; using System.Windows.Controls; using System.Windows.Media.Imaging; using System.Windows.Threading; namespace XHWK.WKTool { /// /// 录屏等待 CountdownWindow.xaml 的交互逻辑 /// public partial class CountdownWindow : Window { public CountdownWindow(int changeTime = 650) { InitializeComponent(); timer = new System.Timers.Timer(changeTime);//设置执行一次(false)还是一直执行(true) timer.AutoReset = true;//设置是否执行System.Timers.Timer.Elapsed事件 timer.Elapsed +=new System.Timers.ElapsedEventHandler(Timer_Elapsed); Initialize(); } /// /// 计时器 /// System.Timers.Timer timer; int ImgNum = 9; public void Initialize(int changeTime=650) { timer.Interval = changeTime/3; timer.Enabled = true; //启动计时器 ImgNum = 9; } private void Timer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (ImgNum >= 1) { loadingImg(ImgNum); ImgNum--; } else { timer.Enabled = false; Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_3.png")); Hide(); })); } } /// /// 加载图片 /// /// void loadingImg(int num) { switch (num) { case 1: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_1.png")); })); break; case 2: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_2.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/countdown2_1.png")); })); break; case 5: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_2.png")); })); break; case 6: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_3.png")); })); break; case 7: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_1.png")); })); break; case 8: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_2.png")); })); break; case 9: Dispatcher.Invoke( DispatcherPriority.Send, new Action(() => { imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_3.png")); })); break; default: break; } } private void Window_ContentRendered(object sender, EventArgs e) { } } }