From 9211ec11c112e18cd99e77f889a01110a70031ce Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 24 十一月 2025 17:47:15 +0800
Subject: [PATCH] 优化项目结构

---
 WPFProject/PanuonWindow.xaml.cs |  143 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 118 insertions(+), 25 deletions(-)

diff --git a/WPFProject/PanuonWindow.xaml.cs b/WPFProject/PanuonWindow.xaml.cs
index 375df69..494eb98 100644
--- a/WPFProject/PanuonWindow.xaml.cs
+++ b/WPFProject/PanuonWindow.xaml.cs
@@ -6,23 +6,36 @@
 using HMI.UI.Util;
 using Panuon.WPF.UI;
 using System;
+using System.Collections.ObjectModel;
 using System.ComponentModel;
-using System.Diagnostics;
 using System.IO;
+using System.Linq;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Media.Imaging;
+using HMI.Util.Base;
+using System.Windows.Interop;
 
 namespace WPFProject
 {
+    public class SimpleAlarm
+    {
+        public string Time { get; set; }
+        public string Message { get; set; }
+        public override string ToString()
+        {
+            return $"{Time} {Message}";
+        }
+    }
+
     /// <summary>
     /// PanuonWindow.xaml 鐨勪氦浜掗�昏緫
     /// </summary>
-    public partial class PanuonWindow : WindowX, IPluginContainer
+    public partial class PanuonWindow : WindowX, IPluginContainer,IAlarmShow, AlarmBase
     {
         public PanuonWindow()
         {
-            Loaded += PanuonWindow_Loaded;
+            this.Loaded += PanuonWindow_Loaded;
         }
 
         private UserInfo currentUser;
@@ -35,13 +48,48 @@
             }
         }
 
+        private string welcomeTitle;
+        public string WelcomeTitle
+        {
+            get => welcomeTitle;
+            set
+            {
+                Set(ref welcomeTitle, value);
+            }
+        }
+
+        private ObservableCollection<SimpleAlarm> alarms = new ObservableCollection<SimpleAlarm>();
+        public ObservableCollection<SimpleAlarm> Alarms
+        {
+            get => alarms;
+            set
+            {
+                Set(ref alarms, value);
+            }
+        }
+
+        public int AlarmCount
+        {
+            get => Alarms?.Count ?? 0;
+        }
+
+        public ListBox sb {
+            get;set;
+        }
+
         private void PanuonWindow_Loaded(object sender, RoutedEventArgs e)
         {
             DataContext = this;
             RefrshConfig();
             InitializeComponent();
-            userMenu.Header = this.lang("App.Welcome", UserInfo.User.Name);
-            ShowMenu = true;
+            AlarmShowHelper.Register(this);
+            var sb = WindowXCaption.GetHeaderTemplate(this);
+            //sb.FindName("list",this.Con);
+                
+            WelcomeTitle = this.lang("App.Welcome", UserInfo.User.Name);
+            ShowMenu = false;
+            Application.Current.MainWindow = this;
+            SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
         }
 
         private void RefrshConfig()
@@ -90,23 +138,6 @@
             }
         }
 
-
-        private void Button_Click_2(object sender, RoutedEventArgs e)
-        {
-            ShowMenu = !ShowMenu;
-            //Button btn = (Button)sender;
-            //double temp = btn.RenderTransform.Value.Determinant;
-            //btn.RenderTransformOrigin = new Point(0.5, 0.5);
-            //ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp * -1);
-            //btn.RenderTransform = verticalFlipTransform;
-            //menuTab.ChangeItemVisibility();
-        }
-
-        private void window_Loaded(object sender, RoutedEventArgs e)
-        {
-            SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
-        }
-
         private void SystemSetting_SystemSettingChanged(object sender, SystemSetting e)
         {
             RefrshConfig();
@@ -125,8 +156,10 @@
         }
 
         private void MenuItem_Click(object sender, RoutedEventArgs e)
-        {MenuItem mi = sender as MenuItem;
-            switch (mi.Name) {
+        {
+            MenuItem mi = sender as MenuItem;
+            switch (mi.Name)
+            {
                 case "MiLogout":
                     Logout();
                     break;
@@ -143,7 +176,8 @@
             if (MsgBoxHelper.WarnMessage(this, this.lang("App.MakeSureLogout")) == MessageBoxResult.OK)
             {
                 string path = Path.Combine(PathHelper.DatabaseFolder, "user.bin");
-                if (File.Exists(path)) { 
+                if (File.Exists(path))
+                {
                     File.Delete(path);
                 }
                 this.Closed -= window_Closed;
@@ -173,6 +207,65 @@
             Application.Current.Shutdown();
         }
 
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            Button btn = sender as Button;
+            switch (btn.Name)
+            {
+                case "minBtn":
+                    this.Minimize();
+                    break;
+                case "maxBtn":
+                    this.Maximize();
+                    break;
+                case "closeBtn":
+                    this.Close();
+                    break;
+                case "BtnSwitchTheme":
+                    ShowMenu = !ShowMenu;
+                    //Button btn = (Button)sender;
+                    //double temp = btn.RenderTransform.Value.Determinant;
+                    //btn.RenderTransformOrigin = new Point(0.5, 0.5);
+                    //ScaleTransform verticalFlipTransform = new ScaleTransform(1, temp * -1);
+                    //btn.RenderTransform = verticalFlipTransform;
+                    //menuTab.ChangeItemVisibility();
+                    break;
+                default:
+                    break;
+            }
+        }
+
+        public bool ShowAlarm(string message)
+        {
+            bool res = false;
+            Dispatcher.Invoke(() =>
+            {
+                if (Alarms.FirstOrDefault(e => e.Message == message) == null)
+                {
+                    var data = new SimpleAlarm
+                    {
+                        Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                        Message = message
+                    };
+                    Alarms.Add(data);
+                    sb?.ScrollIntoView(data);
+                    res = true;
+                }
+            });
+            return res;
+        }
+
+        private void list_Loaded(object sender, RoutedEventArgs e)
+        {
+            sb = sender as ListBox;
+            sb.Loaded -= list_Loaded;
+        }
+
+        public bool? Alarm(string message)
+        {
+            return true;
+        }
+
         //private void BaseWindow_Loaded(object sender, RoutedEventArgs e)
         //{
         //    var s = (Style)this.Resources["WindowButton"];

--
Gitblit v1.9.1