StartWindow.xaml.cs 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. using CCDCountWpf.Language;
  2. using CCDCountWpf.WpfFrom;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using System.Windows;
  9. using System.Windows.Controls;
  10. using System.Windows.Data;
  11. using System.Windows.Documents;
  12. using System.Windows.Input;
  13. using System.Windows.Media;
  14. using System.Windows.Media.Imaging;
  15. using System.Windows.Shapes;
  16. using System.Windows.Threading;
  17. namespace CCDCountWpf
  18. {
  19. /// <summary>
  20. /// StartWindow.xaml 的交互逻辑
  21. /// </summary>
  22. public partial class StartWindow : Window
  23. {
  24. private DispatcherTimer _timer;
  25. public StartWindow()
  26. {
  27. InitializeComponent();
  28. DataContext = ShowMessageBus.ShowBinding;
  29. SetupFullScreen();
  30. InitTimer();
  31. }
  32. private void InitTimer()
  33. {
  34. _timer = new DispatcherTimer();
  35. _timer.Interval = TimeSpan.FromSeconds(0.5);
  36. _timer.Tick += Timer_Tick;
  37. _timer.Start();
  38. }
  39. private void SetupFullScreen()
  40. {
  41. // 隐藏标题栏和边框
  42. this.WindowStyle = WindowStyle.None;
  43. // 禁止调整大小
  44. this.ResizeMode = ResizeMode.NoResize;
  45. // 设置为最顶层窗口
  46. //this.Topmost = true;
  47. // 最大化窗口
  48. this.WindowState = WindowState.Maximized;
  49. // 隐藏任务栏(可选)
  50. this.Top = 0;
  51. this.Left = 0;
  52. this.Width = SystemParameters.PrimaryScreenWidth;
  53. this.Height = SystemParameters.PrimaryScreenHeight;
  54. }
  55. private void LoginInBtd_Loaded(object sender, RoutedEventArgs e)
  56. {
  57. if(MessageBus.NowLoginUserMessage==null)
  58. {
  59. LoginInBtd.Visibility = Visibility.Visible;
  60. EnterSystemBtn.Visibility = Visibility.Collapsed;
  61. }
  62. else
  63. {
  64. LoginInBtd.Visibility = Visibility.Collapsed;
  65. EnterSystemBtn.Visibility = Visibility.Visible;
  66. }
  67. }
  68. private void LoginInBtd_Click(object sender, RoutedEventArgs e)
  69. {
  70. UserLoginWindow userLoginWindow = new UserLoginWindow();
  71. // 设置窗口启动位置为手动
  72. userLoginWindow.WindowStartupLocation = WindowStartupLocation.Manual;
  73. // 水平居中
  74. userLoginWindow.Left = (SystemParameters.PrimaryScreenWidth - userLoginWindow.Width) / 2;
  75. // 垂直靠上(例如屏幕高度的 10% 位置)
  76. userLoginWindow.Top = SystemParameters.PrimaryScreenHeight * 0.1;
  77. userLoginWindow.ShowDialog();
  78. if (MessageBus.NowLoginUserMessage == null)
  79. {
  80. LoginInBtd.Visibility = Visibility.Visible;
  81. EnterSystemBtn.Visibility = Visibility.Collapsed;
  82. }
  83. else
  84. {
  85. LoginInBtd.Visibility = Visibility.Collapsed;
  86. EnterSystemBtn.Visibility = Visibility.Visible;
  87. }
  88. }
  89. private async void EnterSystemBtn_Click(object sender, RoutedEventArgs e)
  90. {
  91. var loadwin = new LoadingWindow { Owner = this };
  92. loadwin.WindowStartupLocation = WindowStartupLocation.CenterScreen;
  93. loadwin.Show();
  94. try
  95. {
  96. await Dispatcher.InvokeAsync(() =>
  97. {
  98. MainWindow mainWindow = new MainWindow();
  99. mainWindow.Show();
  100. this.Close();
  101. });
  102. }
  103. finally
  104. {
  105. await Dispatcher.InvokeAsync(() => {
  106. loadwin.Close();
  107. });
  108. }
  109. }
  110. private void SystemExit_Click(object sender, RoutedEventArgs e)
  111. {
  112. if(_timer != null)
  113. {
  114. _timer.Stop();
  115. _timer.Tick -= Timer_Tick;
  116. _timer = null;
  117. }
  118. this.Close();
  119. Environment.Exit(0);
  120. }
  121. private void Timer_Tick(object sender,EventArgs e)
  122. {
  123. ShowMessageBus.ShowBinding.ShowTimer = DateTime.Now.ToString("HH:mm:ss");
  124. }
  125. private void SwitchLanguage_Click(object sender, RoutedEventArgs e)
  126. {
  127. MessageBus.LanguageIndex++;
  128. LanguageManager.ChangeLanguage(LanguageManager.LanguageList[MessageBus.LanguageIndex % LanguageManager.LanguageList.Count]);
  129. }
  130. }
  131. }