From 9d1660270272180cd71147d6ddd53d1382643d2e Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 02 十一月 2026 18:00:14 +0800
Subject: [PATCH] merge: 并入远程 Initial commit 作为历史根节点

---
 WPFProject/PanuonWindow.xaml.cs |   87 +++++++++++++++++++++++++++++++++++++------
 1 files changed, 75 insertions(+), 12 deletions(-)

diff --git a/WPFProject/PanuonWindow.xaml.cs b/WPFProject/PanuonWindow.xaml.cs
index 3ed72b3..7dceeff 100644
--- a/WPFProject/PanuonWindow.xaml.cs
+++ b/WPFProject/PanuonWindow.xaml.cs
@@ -5,12 +5,14 @@
 using HMI.Core.Util;
 using HMI.UI.Util;
 using HMI.Util.Alarm;
+using log4net;
 using Panuon.WPF.UI;
 using System;
 using System.Collections.ObjectModel;
 using System.ComponentModel;
 using System.IO;
 using System.Linq;
+using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Controls;
 using System.Windows.Media.Imaging;
@@ -33,9 +35,11 @@
     /// </summary>
     public partial class PanuonWindow : WindowX, IPluginContainer, IAlarmShow
     {
+        private ILog log = LogManager.GetLogger("MainWindow");
         public PanuonWindow()
         {
             this.Loaded += PanuonWindow_Loaded;
+            SoftwareVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
         }
 
         private UserInfo currentUser;
@@ -73,6 +77,26 @@
             get => Alarms?.Count ?? 0;
         }
 
+        private string softwareVersion;
+        public string SoftwareVersion
+        {
+            get => softwareVersion;
+            set
+            {
+                Set(ref softwareVersion, value);
+            }
+        }
+
+        private string pluginVersion;
+        public string PluginVersion
+        {
+            get => pluginVersion;
+            set
+            {
+                Set(ref pluginVersion, value);
+            }
+        }
+
         public ListBox sb
         {
             get; set;
@@ -80,17 +104,31 @@
 
         private void PanuonWindow_Loaded(object sender, RoutedEventArgs e)
         {
-            DataContext = this;
-            RefrshConfig();
-            InitializeComponent();
-            AlarmShowHelper.Register(this);
-            var sb = WindowXCaption.GetHeaderTemplate(this);
-            //sb.FindName("list",this.Con);
+            try
+            {
+                DataContext = this;
+                RefrshConfig();
+                InitializeComponent();
+                AlarmShowHelper.Register(this);
 
-            WelcomeTitle = this.lang("App.Welcome", UserInfo.User.Name);
-            ShowMenu = false;
-            Application.Current.MainWindow = this;
-            SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
+                WelcomeTitle = this.lang("App.Welcome", UserInfo.User.Name);
+                ShowMenu = false;
+                Application.Current.MainWindow = this;
+                SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
+
+                if (Environment.Is64BitProcess)
+                {
+                    Task.Run(() =>
+                    {
+                        ResourceListener.Instance.RefreshEvent += this.resourceUI.Refresh;
+                        ResourceListener.Instance.Start();
+                    });
+                }
+            }
+            catch (Exception ex)
+            {
+                log.Error("Window Loaded Error.", ex);
+            }
         }
 
         private void RefrshConfig()
@@ -223,6 +261,7 @@
         {
             try
             {
+                ResourceListener.Instance.Stop();
                 AlarmUtil.Release();
                 PluginLoader.Reset();
                 UserInfo.Logout();
@@ -232,7 +271,7 @@
             {
 
             }
-            Application.Current.Shutdown();
+            Application.Current.Shutdown(0);
         }
 
         private void Button_Click(object sender, RoutedEventArgs e)
@@ -244,7 +283,16 @@
                     this.Minimize();
                     break;
                 case "maxBtn":
-                    this.Maximize();
+                    //var state = this.WindowState == WindowState.Maximized ? WindowState.Normal : WindowState.Maximized;
+                    //SetCurrentValue(Window.WindowStateProperty, state);
+                    if (this.WindowState == WindowState.Maximized)
+                    {
+                        this.Normalmize();
+                    }
+                    else
+                    {
+                        this.Maximize();
+                    }
                     break;
                 case "closeBtn":
                     this.Closed -= Logout_PanuonWindow_Closed;
@@ -296,6 +344,21 @@
             Alarms?.Clear();
         }
 
+        private void menuTab_TabChanged(object sender, Controls.TabChangedEventArg e)
+        {
+            Dispatcher.BeginInvoke(() =>
+            {
+                if (e.newValue == null)
+                {
+                    PluginVersion = string.Empty;
+                }
+                else
+                {
+                    PluginVersion = e.newValue.GetType().Assembly.GetName().Version.ToString();
+                }
+            }, System.Windows.Threading.DispatcherPriority.Normal);
+        }
+
         //private void BaseWindow_Loaded(object sender, RoutedEventArgs e)
         //{
         //    var s = (Style)this.Resources["WindowButton"];

--
Gitblit v1.9.1