84 lines
3.1 KiB
C#
84 lines
3.1 KiB
C#
using System;
|
|
using System.Windows;
|
|
using System.Windows.Media.Imaging;
|
|
using System.Windows.Threading;
|
|
|
|
namespace AutoUpdateEx
|
|
{
|
|
/// <summary>
|
|
/// MainWindow.xaml 的交互逻辑
|
|
/// </summary>
|
|
public partial class MainWindow : Window
|
|
{
|
|
/// <summary>
|
|
/// 更新程序界面图片显示控制器
|
|
/// </summary>
|
|
private DispatcherTimer ImagePlayTimer { get; set; }
|
|
/// <summary>
|
|
/// 本次启动使用的轮播图片库编号
|
|
/// </summary>
|
|
private int PlayGroup { get; set; } = 1;
|
|
/// <summary>
|
|
/// 正在播放的图片编号
|
|
/// </summary>
|
|
private int ImageIndex { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// 更新程序实例
|
|
/// </summary>
|
|
private ViewModels.MainWindowViewModel MainWindowView { get; set; }
|
|
|
|
/// <summary>
|
|
/// 更新程序主界面
|
|
/// </summary>
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
//设置窗口高度
|
|
this.Height = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height;
|
|
if (this.Height > 768) this.Height = 768;
|
|
//设置窗口宽度
|
|
this.Width = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width;
|
|
if (this.Width > 1024) this.Width = 1024;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 更新程序窗口加载事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
|
{
|
|
//显示版本号
|
|
Ver.Text = "Ver " + System.Windows.Forms.Application.ProductVersion;
|
|
//随机一组轮播图片库
|
|
PlayGroup = new Random(Guid.NewGuid().GetHashCode()).Next(1,4);
|
|
|
|
//程序启动显示第一张图片
|
|
ImageIndex = 1;
|
|
imgAd.Source = new BitmapImage(new Uri($"Component/CarouselFigure/Group{PlayGroup}/{ImageIndex}.png", UriKind.Relative));
|
|
|
|
//初始化并启动图标轮播计时器,每隔三秒切换一次轮播图
|
|
ImagePlayTimer = new DispatcherTimer() { Interval = TimeSpan.FromSeconds(3) };
|
|
ImagePlayTimer.Tick += (s, args) =>
|
|
{
|
|
ImageIndex = ImageIndex < 3 ? (ImageIndex + 1) : 1;
|
|
imgAd.Source = new BitmapImage(new Uri($"Component/CarouselFigure/Group{PlayGroup}/{ImageIndex}.png", UriKind.Relative));
|
|
};
|
|
ImagePlayTimer.Start();
|
|
|
|
//初始化自动更新程序实例
|
|
MainWindowView = new ViewModels.MainWindowViewModel();
|
|
//绑定程序显示到窗口
|
|
this.DataContext = MainWindowView;
|
|
//显示初始提示
|
|
MainWindowView.Message = "正在启动更新程序......";
|
|
//异步运行更新和检测方法,执行收银系统完整性检测和更新,并在完整性检测和更新结束后启动收银系统主程序
|
|
var task = new System.Threading.Tasks.TaskFactory().StartNew(() =>
|
|
{
|
|
MainWindowView.UpdateApplication();
|
|
});
|
|
}
|
|
}
|
|
}
|