2025-03-28 09:49:56 +08:00

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();
});
}
}
}