From d1b72117058f1131046b6aa3add8e3ccfae033d8 Mon Sep 17 00:00:00 2001
From: wenxiangchao <wenxiangchao@ihengxin.com.cn>
Date: 星期一, 09 十一月 2026 10:36:07 +0800
Subject: [PATCH] docs: CAN 模拟器独立 TCP 服务进程设计规格(统一 CanDeviceDriver + 双工推送协议)

---
 WPFProject/LoadingWindow.xaml.cs |   64 +++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 22 deletions(-)

diff --git a/WPFProject/LoadingWindow.xaml.cs b/WPFProject/LoadingWindow.xaml.cs
index e0c4fc1..3ef9eb7 100644
--- a/WPFProject/LoadingWindow.xaml.cs
+++ b/WPFProject/LoadingWindow.xaml.cs
@@ -1,12 +1,17 @@
 锘縰sing HMI.Base;
-using HMI.Core.Api;
+using HMI.Core.Entity;
+using HMI.Core.Setting;
+using HMI.Core.Util;
 using HMI.UI.Util;
+using HMI.Util.Alarm;
 using Panuon.WPF.UI;
 using System;
+using System.IO;
 using System.Threading.Tasks;
 using System.Windows;
 using System.Windows.Documents;
 using System.Windows.Media;
+using System.Windows.Media.Imaging;
 
 namespace WPFProject
 {
@@ -52,6 +57,8 @@
         {
             DataContext = this;
             InitializeComponent();
+            logo.Source = new BitmapImage(new Uri(Path.Combine(PathHelper.IconFolder,
+                     SystemSetting.Instance.LoginLogoPath ?? "LoginLogo.png")));
         }
 
         private void Window_Loaded(object sender, RoutedEventArgs e)
@@ -60,34 +67,40 @@
         }
         private void Loader_LoadMessageAppend(object sender, LoadMsg msg)
         {
-            switch (msg.Type)
+            Dispatcher.BeginInvoke(() =>
             {
-                case LoadMsgType.INIT:
-                    total = msg.NumData;
-                    Add(msg.Message, null);
-                    break;
-                case LoadMsgType.LOADING:
-                    HasErr = HasErr || msg.Result == false;
-                    if (msg.Result != null)
-                    {
-                        processBar.Value = ++finished / total * 100;
-                    }
-                    Add(msg.Message, msg.Result);
-                    break;
-                case LoadMsgType.FINISHED:
-                    LoadFinished();
-                    break;
-                default:
-                    break;
-            }
+                switch (msg.Type)
+                {
+                    case LoadMsgType.INIT:
+                        total = msg.NumData;
+                        Add(msg.Message, msg.Result);
+                        break;
+                    case LoadMsgType.LOADING:
+                        HasErr = HasErr || msg.Result == false;
+                        if (msg.Result != null)
+                        {
+                            processBar.Value = ++finished / total * 100;
+                        }
+                        Add(msg.Message, msg.Result);
+                        break;
+                    case LoadMsgType.FINISHED:
+                        LoadFinished();
+                        break;
+                    default:
+                        break;
+                }
+
+            });
         }
 
 
         private void Button_Click(object sender, RoutedEventArgs e)
         {
+            this.Closed -= ShutDownWhen_Closed;
             window.Show();
             this.Close();
         }
+
         private PanuonWindow window;
         private double total;
         private double finished;
@@ -97,8 +110,10 @@
             window = new PanuonWindow();
             PluginLoader loader = PluginLoader.GetLoader();
             loader.LoadMessageAppend += Loader_LoadMessageAppend;
+            AlarmUtil.LoadMessageAppend += Loader_LoadMessageAppend;
             Task.Run(() =>
             {
+                AlarmUtil.Init();
                 loader.LoadMenuAndPlugin(window, Dispatcher);
                 //
             });
@@ -115,8 +130,14 @@
                 WindowXCaption.SetButtons(this, CaptionButtons.Close);
                 ShowConsole = true;
                 BtnNext.Visibility = Visibility.Visible;
-                MsgBoxHelper.Error(this, "鍔犺浇鍑洪敊锛岃纭");
+                MsgBoxHelper.Error(this, this.lang("App.LoadPluginError"));
+                this.Closed += ShutDownWhen_Closed; ;
             }
+        }
+
+        private void ShutDownWhen_Closed(object sender, EventArgs e)
+        {
+            Application.Current.Shutdown();
         }
 
         public void Add(string text, bool? result)
@@ -150,7 +171,6 @@
             //        _ = Console.Document.Blocks.Remove(Console.Document.Blocks.FirstBlock);
             //    }
             //}
-
         }
     }
 }

--
Gitblit v1.9.1