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 = 22;
public void Initialize(bool ShowlblShortcut = false, int changeTime = 2000)
{
if (ShowlblShortcut)
{
lblShortcut.Visibility = Visibility.Visible;
}
else
{
lblShortcut.Visibility = Visibility.Hidden;
}
ImgNum = 22;
bool IsStart = true;
new Thread(new ThreadStart(new Action(() =>
{
while (IsStart)
{
try
{
if (ImgNum >= 1)
{
loadingImg(ImgNum);
LogHelper.WriteInfoLog("【" + ImgNum + "】");
ImgNum--;
Thread.Sleep(changeTime / 22);
}
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_7.png"));
}));
break;
case 2:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_6.png"));
}));
break;
case 3:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_5.png"));
}));
break;
case 4:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_4.png"));
}));
break;
case 5:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_3.png"));
}));
break;
case 6:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_2.png"));
}));
break;
case 7:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown1_1.png"));
}));
break;
case 8:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_7.png"));
}));
break;
case 9:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_6.png"));
}));
break;
case 10:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_5.png"));
}));
break;
case 11:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_4.png"));
}));
break;
case 12:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_3.png"));
}));
break;
case 13:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_2.png"));
}));
break;
case 14:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown2_1.png"));
}));
break;
case 15:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_8.png"));
}));
break;
case 16:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_7.png"));
}));
break;
case 17:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_6.png"));
}));
break;
case 18:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_5.png"));
}));
break;
case 19:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_4.png"));
}));
break;
case 20:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_3.png"));
}));
break;
case 21:
Dispatcher.Invoke(
DispatcherPriority.Send,
new Action(() =>
{
imgLoding.Source = new BitmapImage(new Uri("pack://application:,,/Images/countdown3_2.png"));
}));
break;
case 22:
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)
{
}
}
}