From ee9b94104cbb5597c6033d46ec356771d383b21b Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期一, 03 三月 2025 19:30:15 +0800
Subject: [PATCH] 上传依赖;

---
 HMI.UI/Util/MsgBoxHelper.cs |   43 +++++++++++++++++++++++++++++++++++++++----
 1 files changed, 39 insertions(+), 4 deletions(-)

diff --git a/HMI.UI/Util/MsgBoxHelper.cs b/HMI.UI/Util/MsgBoxHelper.cs
index 2f0e3df..496b435 100644
--- a/HMI.UI/Util/MsgBoxHelper.cs
+++ b/HMI.UI/Util/MsgBoxHelper.cs
@@ -1,6 +1,7 @@
 锘縰sing Panuon.WPF.UI;
 using System.Windows;
 using Panuon.WPF.UI.Configurations;
+using System.Windows.Threading;
 
 namespace HMI.UI.Util
 {
@@ -15,12 +16,12 @@
             DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
         {
             var setting = Application.Current.FindResource("MsgBoxWarn") as MessageBoxXSetting;
-            return MessageBoxX.Show(owner, message, caption, button, icon, defaultButton, setting, countdown);
+            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
         }
         #endregion
 
         #region Error
-        public static MessageBoxResult ErrorMessage(Window owner,
+        public static MessageBoxResult ErrorMessage(DependencyObject owner,
             string message,
             string caption = "閿欒",
             MessageBoxButton button = MessageBoxButton.OKCancel,
@@ -28,7 +29,18 @@
             DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
         {
             var setting = Application.Current.FindResource("MsgBoxError") as MessageBoxXSetting;
-            return MessageBoxX.Show(owner, message, caption, button, icon, defaultButton, setting, countdown);
+            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
+        }
+
+        public static MessageBoxResult Error(DependencyObject owner,
+            string message,
+            string caption = "閿欒",
+            MessageBoxButton button = MessageBoxButton.OK,
+            MessageBoxIcon icon = MessageBoxIcon.Error,
+            DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
+        {
+            var setting = Application.Current.FindResource("MsgBoxError") as MessageBoxXSetting;
+            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
         }
         #endregion
 
@@ -41,8 +53,31 @@
             DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
         {
             var setting = Application.Current.FindResource("MsgBoxInfo") as MessageBoxXSetting;
-            return MessageBoxX.Show(owner, message, caption, button, icon, defaultButton, setting, countdown);
+            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
         }
         #endregion
+
+        public static MessageBoxResult ShowMessage(DependencyObject owner,
+            string message,
+            string caption,
+            MessageBoxButton button,
+            MessageBoxIcon icon,
+            DefaultButton defaultButton, MessageBoxXSetting setting, int? countdown)
+        {
+            MessageBoxResult res = MessageBoxResult.None;
+            Application.Current.Dispatcher.Invoke(() =>
+            {
+                if (owner is Window window)
+                {
+                    res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown);
+                }
+                else
+                {
+                    window = Window.GetWindow(owner);
+                    res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown);
+                }
+            });
+            return res;
+        }
     }
 }

--
Gitblit v1.9.1