using System; using System.Windows; using System.Windows.Media.Imaging; using System.Windows.Threading; namespace AutoUpdateEx { /// /// MainWindow.xaml 的交互逻辑 /// public partial class MainWindow : Window { /// /// 更新程序界面图片显示控制器 /// private DispatcherTimer ImagePlayTimer { get; set; } /// /// 本次启动使用的轮播图片库编号 /// private int PlayGroup { get; set; } = 1; /// /// 正在播放的图片编号 /// private int ImageIndex { get; set; } = 0; /// /// 更新程序实例 /// private ViewModels.MainWindowViewModel MainWindowView { get; set; } /// /// 更新程序主界面 /// 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; } /// /// 更新程序窗口加载事件 /// /// /// 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(); }); } } }